Skip to content

Commit d23e52a

Browse files
author
Matthias Lohr
committed
correct HTTP methods for REST
1 parent c5e7f3b commit d23e52a

File tree

5 files changed

+41
-45
lines changed

5 files changed

+41
-45
lines changed

api/lib/modules/zone/jsonzone.class.php

+5-7
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ public function listZones() {
159159
}
160160

161161
public function incrementSerial(Zone $zone) {
162-
$result = $this->httpGet($this->apiBase.'/servers/'.$this->server.'/zones/'.$zone->getName().'/incserial');
162+
$result = $this->httpPost($this->apiBase.'/servers/'.$this->server.'/zones/'.$zone->getName().'/incserial');
163163
return $result->success;
164164
}
165165

@@ -175,7 +175,7 @@ public function recordAdd(Zone $zone, ResourceRecord $record) {
175175
}
176176
$data->ttl = $record->getTTL();
177177
$data->views = $record->getViewinfo();
178-
$result = $this->httpPut($this->apiBase.'/servers/'.$this->server.'/zones/'.$zone->getName().'/records',$data);
178+
$result = $this->httpPost($this->apiBase.'/servers/'.$this->server.'/zones/'.$zone->getName().'/records',$data);
179179
if ($result->success) {
180180
return $result->newid;
181181
}
@@ -200,7 +200,7 @@ public function recordSetViews(Zone $zone, $recordid, array $views) {
200200
$data->fields[$fieldname] = $record->getField($fieldname);
201201
}
202202
$data->views = $views;
203-
$result = $this->httpPost($this->apiBase.'/servers/'.$this->server.'/zones/'.$zone->getName().'/records/'.$recordid,$data);
203+
$result = $this->httpPut($this->apiBase.'/servers/'.$this->server.'/zones/'.$zone->getName().'/records/'.$recordid,$data);
204204
return $result->success;
205205
}
206206

@@ -215,15 +215,13 @@ public function recordUpdate(Zone $zone, $recordid, ResourceRecord $record) {
215215
$data->fields[$fieldname] = $record->getField($fieldname);
216216
}
217217
$data->ttl = $record->getTTL();
218-
$result = $this->httpPost($this->apiBase.'/servers/'.$this->server.'/zones/'.$zone->getName().'/records/'.$recordid,$data);
218+
$result = $this->httpPut($this->apiBase.'/servers/'.$this->server.'/zones/'.$zone->getName().'/records/'.$recordid,$data);
219219
return $result->success;
220220
}
221221

222222
public function zoneCreate(Zone $zone) {
223223
if ($this->zoneExists($zone)) return false;
224-
$data = array();
225-
$data->name = $zone->getName();
226-
$result = $this->httpPut($this->apiBase.'/servers/'.$this->server.'/zones',$data);
224+
$result = $this->httpPut($this->apiBase.'/servers/'.$this->server.'/zones/'.$zone->getName());
227225
return $result->success;
228226
}
229227

api/lib/routers/serverrouter.class.php

+30-31
Original file line numberDiff line numberDiff line change
@@ -70,47 +70,46 @@ public function views() {
7070
}
7171

7272
public function zones($zonename = null) {
73-
if ($this->endOfTracking()) {
74-
if ($zonename === null) {
75-
if ($this->getRequestType() == 'PUT') {
76-
$data = RequestRouter::getRequestData();
77-
$zone = new Zone($data['zonename'], $this->zoneModule);
73+
if ($zonename === null) {
74+
// list zones
75+
$result = new stdClass();
76+
$result->zones = array();
77+
foreach ($this->zoneModule->listZones() as $zone) {
78+
$tmpzone = new stdClass();
79+
$tmpzone->id = $zone->getName();
80+
$tmpzone->name = $zone->getName();
81+
// check for views
82+
if ($this->zoneModule->hasViews()) {
83+
$tmpzone->views = $this->zoneModule->listViews();
84+
}
85+
$result->zones[$zone->getName()] = $tmpzone;
86+
ksort($result->zones,SORT_STRING);
87+
}
88+
return $result;
89+
}
90+
else {
91+
$zone = new Zone($zonename, $this->zoneModule);
92+
if ($this->endOfTracking()) {
93+
if ($this->getRequestType() === 'PUT') {
7894
$result = new stdClass();
7995
$result->success = $this->zoneModule->zoneCreate($zone);
8096
return $result;
8197
}
82-
// list zones
83-
$result = new stdClass();
84-
$result->zones = array();
85-
foreach ($this->zoneModule->listZones() as $zone) {
86-
$tmpzone = new stdClass();
87-
$tmpzone->id = $zone->getName();
88-
$tmpzone->name = $zone->getName();
89-
// check for views
90-
if ($this->zoneModule->hasViews()) {
91-
$tmpzone->views = $this->zoneModule->listViews();
92-
}
93-
$result->zones[$zone->getName()] = $tmpzone;
94-
ksort($result->zones,SORT_STRING);
95-
}
96-
return $result;
97-
} else {
98-
$zone = new Zone($zonename, $this->zoneModule);
99-
if ($this->getRequestType() == 'DELETE') {
98+
elseif ($this->getRequestType() === 'DELETE') {
10099
$this->zoneModule->zoneDelete($zone);
101100
$result = new stdClass();
102101
$result->success = true;
103102
return $result;
104-
} else {
105-
$zone = new Zone($zonename, $this->zoneModule);
106-
$zoneRouter = new ZoneRouter($zone);
107-
return $zoneRouter->track($this->routingPath);
103+
}
104+
else {
105+
return new stdClass();
108106
}
109107
}
110-
} else {
111-
$zone = new Zone($zonename, $this->zoneModule);
112-
$zoneRouter = new ZoneRouter($zone);
113-
return $zoneRouter->track($this->routingPath);
108+
else {
109+
$zone = new Zone($zonename, $this->zoneModule);
110+
$zoneRouter = new ZoneRouter($zone);
111+
return $zoneRouter->track($this->routingPath);
112+
}
114113
}
115114
}
116115
}

api/lib/routers/zonerouter.class.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public function incserial() {
116116
public function records($recordid = null) {
117117
$result = new stdClass();
118118
if ($this->endOfTracking() && $recordid === null) {
119-
if (RequestRouter::getRequestType() == 'PUT') {
119+
if (RequestRouter::getRequestType() == 'POST') {
120120
$data = RequestRouter::getRequestData();
121121
if (!isset($data['type'])) {
122122
$result->success = false;
@@ -158,7 +158,7 @@ public function records($recordid = null) {
158158
}
159159
} elseif ($this->endOfTracking() && $recordid !== null) {
160160
$record = $this->zone->getRecordById($recordid);
161-
if ($this->getRequestType() == 'POST') {
161+
if ($this->getRequestType() == 'PUT') {
162162
$data = RequestRouter::getRequestData();
163163
if (!isset($data['type'])) {
164164
$result->success = false;
@@ -181,7 +181,7 @@ public function records($recordid = null) {
181181
} else {
182182
$views = null;
183183
}
184-
184+
185185
$record = ResourceRecord::getInstance($data['type'], $data['name'], $data['fields'], $data['ttl'], $prio, $views);
186186
$this->zone->recordUpdate($recordid, $record);
187187
$result->success = true;

js/pdaapi.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,8 @@ function pdaAPI(url) {
106106

107107
this.createZone = function(server, zonename, success, failure) {
108108
Ext.Ajax.request({
109-
url: URL+'/servers/'+server+'/zones/',
109+
url: URL+'/servers/'+server+'/zones/'+zonename,
110110
method: 'PUT',
111-
params: 'zonename='+zonename,
112111
success: function(response, options) {
113112
var data = Ext.decode(response.responseText);
114113
if(data.success) {

js/pdagui.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -182,11 +182,11 @@ function pdaGUI(api) {
182182
},
183183
create: {
184184
url: RestURL,
185-
method: "PUT"
185+
method: "POST"
186186
},
187187
update: {
188188
url: RestURL,
189-
method: "POST"
189+
method: "PUT"
190190
},
191191
destroy: {
192192
url: RestURL,

0 commit comments

Comments
 (0)