Skip to content

Commit

Permalink
cleanup_duplication: moved duplications to abstract class.
Browse files Browse the repository at this point in the history
  • Loading branch information
Eugst authored and DavidGarciaCat committed Dec 6, 2017
1 parent c228b2b commit 2412efd
Show file tree
Hide file tree
Showing 3 changed files with 121 additions and 206 deletions.
119 changes: 119 additions & 0 deletions src/Mailgun/Model/Domain/AbstractDomainResponse.php
@@ -0,0 +1,119 @@
<?php

/*
* Copyright (C) 2013 Mailgun
*
* This software may be modified and distributed under the terms
* of the MIT license. See the LICENSE file for details.
*/

namespace Mailgun\Model\Domain;

use Mailgun\Model\ApiResponse;

/**
* @author Tobias Nyholm <tobias.nyholm@gmail.com>
*/
abstract class AbstractDomainResponse implements ApiResponse
{
/**
* @var string
*/
private $message;

/**
* @var Domain
*/
private $domain;

/**
* @var DnsRecord[]
*/
private $inboundDnsRecords;

/**
* @var DnsRecord[]
*/
private $outboundDnsRecords;

/**
* @param array $data
*
* @return self
*/
public static function create(array $data)
{
$rx = [];
$tx = [];
$domain = null;
$message = null;

if (isset($data['domain'])) {
$domain = Domain::create($data['domain']);
}

if (isset($data['message'])) {
$message = $data['message'];
}

if (isset($data['receiving_dns_records'])) {
foreach ($data['receiving_dns_records'] as $item) {
$rx[] = DnsRecord::create($item);
}
}

if (isset($data['sending_dns_records'])) {
foreach ($data['sending_dns_records'] as $item) {
$tx[] = DnsRecord::create($item);
}
}

return new self($domain, $rx, $tx, $message);
}

/**
* @param Domain $domainInfo
* @param DnsRecord[] $rxRecords
* @param DnsRecord[] $txRecords
* @param string $message
*/
private function __construct(Domain $domainInfo, array $rxRecords, array $txRecords, $message)
{
$this->domain = $domainInfo;
$this->inboundDnsRecords = $rxRecords;
$this->outboundDnsRecords = $txRecords;
$this->message = $message;
}

/**
* @return Domain
*/
public function getDomain()
{
return $this->domain;
}

/**
* @return DnsRecord[]
*/
public function getInboundDNSRecords()
{
return $this->inboundDnsRecords;
}

/**
* @return DnsRecord[]
*/
public function getOutboundDNSRecords()
{
return $this->outboundDnsRecords;
}

/**
* @return string
*/
public function getMessage()
{
return $this->message;
}
}
104 changes: 1 addition & 103 deletions src/Mailgun/Model/Domain/CreateResponse.php
Expand Up @@ -9,111 +9,9 @@

namespace Mailgun\Model\Domain;

use Mailgun\Model\ApiResponse;

/**
* @author Tobias Nyholm <tobias.nyholm@gmail.com>
*/
final class CreateResponse implements ApiResponse
final class CreateResponse extends AbstractDomainResponse
{
/**
* @var string
*/
private $message;

/**
* @var Domain
*/
private $domain;

/**
* @var DnsRecord[]
*/
private $inboundDnsRecords;

/**
* @var DnsRecord[]
*/
private $outboundDnsRecords;

/**
* @param array $data
*
* @return self
*/
public static function create(array $data)
{
$rx = [];
$tx = [];
$domain = null;
$message = null;

if (isset($data['domain'])) {
$domain = Domain::create($data['domain']);
}

if (isset($data['message'])) {
$message = $data['message'];
}

if (isset($data['receiving_dns_records'])) {
foreach ($data['receiving_dns_records'] as $item) {
$rx[] = DnsRecord::create($item);
}
}

if (isset($data['sending_dns_records'])) {
foreach ($data['sending_dns_records'] as $item) {
$tx[] = DnsRecord::create($item);
}
}

return new self($domain, $rx, $tx, $message);
}

/**
* @param Domain $domainInfo
* @param DnsRecord[] $rxRecords
* @param DnsRecord[] $txRecords
* @param string $message
*/
private function __construct(Domain $domainInfo, array $rxRecords, array $txRecords, $message)
{
$this->domain = $domainInfo;
$this->inboundDnsRecords = $rxRecords;
$this->outboundDnsRecords = $txRecords;
$this->message = $message;
}

/**
* @return Domain
*/
public function getDomain()
{
return $this->domain;
}

/**
* @return DnsRecord[]
*/
public function getInboundDNSRecords()
{
return $this->inboundDnsRecords;
}

/**
* @return DnsRecord[]
*/
public function getOutboundDNSRecords()
{
return $this->outboundDnsRecords;
}

/**
* @return string
*/
public function getMessage()
{
return $this->message;
}
}
104 changes: 1 addition & 103 deletions src/Mailgun/Model/Domain/VerifyResponse.php
Expand Up @@ -9,111 +9,9 @@

namespace Mailgun\Model\Domain;

use Mailgun\Model\ApiResponse;

/**
* @author Maxim Zasorin <maximzasorin@gmail.com>
*/
final class VerifyResponse implements ApiResponse
final class VerifyResponse extends AbstractDomainResponse
{
/**
* @var Domain
*/
private $domain;

/**
* @var string
*/
private $message;

/**
* @var DnsRecord[]
*/
private $inboundDnsRecords;

/**
* @var DnsRecord[]
*/
private $outboundDnsRecords;

/**
* @param array $data
*
* @return self
*/
public static function create(array $data)
{
$rx = [];
$tx = [];
$domain = null;
$message = null;

if (isset($data['domain'])) {
$domain = Domain::create($data['domain']);
}

if (isset($data['message'])) {
$message = $data['message'];
}

if (isset($data['receiving_dns_records'])) {
foreach ($data['receiving_dns_records'] as $item) {
$rx[] = DnsRecord::create($item);
}
}

if (isset($data['sending_dns_records'])) {
foreach ($data['sending_dns_records'] as $item) {
$tx[] = DnsRecord::create($item);
}
}

return new self($domain, $rx, $tx, $message);
}

/**
* @param Domain $domainInfo
* @param DnsRecord[] $rxRecords
* @param DnsRecord[] $txRecords
* @param string $message
*/
private function __construct(Domain $domainInfo, array $rxRecords, array $txRecords, $message)
{
$this->domain = $domainInfo;
$this->inboundDnsRecords = $rxRecords;
$this->outboundDnsRecords = $txRecords;
$this->message = $message;
}

/**
* @return Domain
*/
public function getDomain()
{
return $this->domain;
}

/**
* @return DnsRecord[]
*/
public function getInboundDNSRecords()
{
return $this->inboundDnsRecords;
}

/**
* @return DnsRecord[]
*/
public function getOutboundDNSRecords()
{
return $this->outboundDnsRecords;
}

/**
* @return string
*/
public function getMessage()
{
return $this->message;
}
}

0 comments on commit 2412efd

Please sign in to comment.