瀏覽代碼

Re-add "recordsByName" functions.

Shane Mc Cormack 8 年之前
父節點
當前提交
a6e13764c8
共有 1 個文件被更改,包括 58 次插入14 次删除
  1. 58 14
      src/MyDNSHostAPI.php

+ 58 - 14
src/MyDNSHostAPI.php

@@ -15,7 +15,7 @@
 		/** Are we impersonating an email address or an ID? */
 		private $impersonateType = FALSE;
 		/** Are we accessing domain functions with admin override? */
-		private $domainAdminOverride = FALSE;
+		private $domainAdmin = FALSE;
 		/** Debug mode value. */
 		private $debug = FALSE;
 		/** Last API Response */
@@ -329,7 +329,7 @@
 		 * @param $value (Default: true) Set value for domain admin override.
 		 */
 		public function domainAdmin($value = true) {
-			$this->domainAdminOverride = true;
+			$this->domainAdmin = true;
 
 			return $this;
 		}
@@ -342,7 +342,7 @@
 		public function getDomains() {
 			if ($this->auth === FALSE) { return []; }
 
-			$result = $this->api(($this->domainAdminOverride ? '/admin' : '') . '/domains');
+			$result = $this->api(($this->domainAdmin ? '/admin' : '') . '/domains');
 			return isset($result['response']) ? $result['response'] : [];
 		}
 
@@ -361,7 +361,7 @@
 				$data['owner'] = $owner;
 			}
 
-			return $this->api(($this->domainAdminOverride ? '/admin' : '') . '/domains', 'POST', $data);
+			return $this->api(($this->domainAdmin ? '/admin' : '') . '/domains', 'POST', $data);
 		}
 
 		/**
@@ -373,7 +373,7 @@
 		public function deleteDomain($domain) {
 			if ($this->auth === FALSE) { return []; }
 
-			return $this->api(($this->domainAdminOverride ? '/admin' : '') . '/domains/' . $domain, 'DELETE');
+			return $this->api(($this->domainAdmin ? '/admin' : '') . '/domains/' . $domain, 'DELETE');
 		}
 
 		/**
@@ -385,7 +385,7 @@
 		public function getDomainData($domain) {
 			if ($this->auth === FALSE) { return []; }
 
-			$result = $this->api(($this->domainAdminOverride ? '/admin' : '') . '/domains/' . $domain);
+			$result = $this->api(($this->domainAdmin ? '/admin' : '') . '/domains/' . $domain);
 			return isset($result['response']) ? $result['response'] : NULL;
 		}
 
@@ -399,7 +399,7 @@
 		public function setDomainData($domain, $data) {
 			if ($this->auth === FALSE) { return []; }
 
-			return $this->api(($this->domainAdminOverride ? '/admin' : '') . '/domains/' . $domain, 'POST', $data);
+			return $this->api(($this->domainAdmin ? '/admin' : '') . '/domains/' . $domain, 'POST', $data);
 		}
 
 		/**
@@ -411,7 +411,7 @@
 		public function getDomainAccess($domain) {
 			if ($this->auth === FALSE) { return []; }
 
-			$result = $this->api(($this->domainAdminOverride ? '/admin' : '') . '/domains/' . $domain . '/access');
+			$result = $this->api(($this->domainAdmin ? '/admin' : '') . '/domains/' . $domain . '/access');
 			return isset($result['response']['access']) ? $result['response']['access'] : [];
 		}
 
@@ -425,7 +425,7 @@
 		public function setDomainAccess($domain, $data) {
 			if ($this->auth === FALSE) { return []; }
 
-			return $this->api(($this->domainAdminOverride ? '/admin' : '') . '/domains/' . $domain . '/access', 'POST', $data);
+			return $this->api(($this->domainAdmin ? '/admin' : '') . '/domains/' . $domain . '/access', 'POST', $data);
 		}
 
 		/**
@@ -437,7 +437,7 @@
 		public function syncDomain($domain) {
 			if ($this->auth === FALSE) { return []; }
 
-			return $this->api(($this->domainAdminOverride ? '/admin' : '') . '/domains/' . $domain . '/sync');
+			return $this->api(($this->domainAdmin ? '/admin' : '') . '/domains/' . $domain . '/sync');
 		}
 
 		/**
@@ -449,7 +449,7 @@
 		public function exportZone($domain) {
 			if ($this->auth === FALSE) { return []; }
 
-			$result = $this->api(($this->domainAdminOverride ? '/admin' : '') . '/domains/' . $domain . '/export');
+			$result = $this->api(($this->domainAdmin ? '/admin' : '') . '/domains/' . $domain . '/export');
 			return isset($result['response']['zone']) ? $result['response']['zone'] : [];
 		}
 
@@ -463,7 +463,7 @@
 		public function importZone($domain, $zone) {
 			if ($this->auth === FALSE) { return []; }
 
-			return $this->api(($this->domainAdminOverride ? '/admin' : '') . '/domains/' . $domain . '/import', 'POST', ['zone' => $zone]);
+			return $this->api(($this->domainAdmin ? '/admin' : '') . '/domains/' . $domain . '/import', 'POST', ['zone' => $zone]);
 		}
 
 
@@ -476,7 +476,22 @@
 		public function getDomainRecords($domain) {
 			if ($this->auth === FALSE) { return []; }
 
-			$result = $this->api(($this->domainAdminOverride ? '/admin' : '') . '/domains/' . $domain . '/records');
+			$result = $this->api(($this->domainAdmin ? '/admin' : '') . '/domains/' . $domain . '/records');
+			return isset($result['response']['records']) ? $result['response']['records'] : [];
+		}
+
+		/**
+		 * Get domain records for a given domain filtered by name
+		 *
+		 * @param $domain Domain to get records for
+		 * @param $name Record name to get
+		 * @param $type (Optional) optional type to limit to
+		 * @return Array of records or an empty array.
+		 */
+		public function getDomainRecordsByName($domain, $name, $type = null) {
+			if ($this->auth === FALSE) { return []; }
+
+			$result = $this->api(($this->domainAdmin ? '/admin' : '') . '/domains/' . $domain . '/record/' . $name . ($type != null ? '/' . $type : ''));
 			return isset($result['response']['records']) ? $result['response']['records'] : [];
 		}
 
@@ -490,7 +505,36 @@
 		public function setDomainRecords($domain, $data) {
 			if ($this->auth === FALSE) { return []; }
 
-			return $this->api(($this->domainAdminOverride ? '/admin' : '') . '/domains/' . $domain . '/records', 'POST', $data);
+			return $this->api(($this->domainAdmin ? '/admin' : '') . '/domains/' . $domain . '/records', 'POST', $data);
+		}
+
+
+		/**
+		 * Delete records for a given domain.
+		 *
+		 * @param $domain Domain to delete records for
+		 * @return Result from API
+		 */
+		public function deleteDomainRecords($domain) {
+			if ($this->auth === FALSE) { return []; }
+
+			$result = $this->api(($this->domainAdmin ? '/admin' : '') . '/domains/' . $domain . '/records', 'DELETE');
+			return $result['response'];
+		}
+
+		/**
+		 * Delete records for a given domain.
+		 *
+		 * @param $domain Domain to delete records for
+		 * @param $name Record name to delete
+		 * @param $type (Optional) optional type to limit delete to
+		 * @return Result from API
+		 */
+		public function deleteDomainRecordsByName($domain, $name, $type = null) {
+			if ($this->auth === FALSE) { return []; }
+
+			$result = $this->api(($this->domainAdmin ? '/admin' : '') . '/domains/' . $domain . '/record/' . $name . ($type != null ? '/' . $type : ''), 'DELETE');
+			return $result['response'];
 		}
 
 		/**