6 throw new Exception(
"Commit requires post");
8 $data = @$_POST[
'--data'];
10 throw new Exception(
"No data provided");
13 $data = json_decode($data,
true);
19 if ( isset($data[
'inserts']) ){
20 $inserts =& $data[
'inserts'];
23 if ( isset($data[
'updates']) ){
24 $updates =& $data[
'updates'];
27 if ( isset($data[
'deletes']) ){
28 $deletes =& $data[
'deletes'];
34 $deleteResponses = array();
37 foreach ( $deletes as $deleteInfo ){
39 $deleteResponses[] =& $response;
40 $record = df_get_record_by_id($deleteInfo[
'id']);
42 $response[
'message'] =
'Record '.$deleteInfo[
'id'].
' could not be found.';
43 $response[
'code'] = 404;
46 $res = $response->delete(
true);
48 $response[
'message'] = $res->getMessage();
49 $response[
'code'] = $res->getCode();
52 $response[
'message'] =
'Deleted record '.$deleteInfo[
'id'].
'.';
53 $response[
'code'] = 200;
54 $response[
'recordId'] = $deleteInfo[
'id'];
60 $insertResponses = array();
61 foreach ($inserts as $insertInfo){
63 $insertResponses[] =& $response;
65 $record->setValues($insertInfo[
'data']);
66 $res = $record->save(null,
true);
68 $response[
'message'] = $res->getMessage();
69 $response[
'code'] = $res->getCode();
72 $response[
'message'] =
'Inserted record';
73 $response[
'code'] = $res->getCode();
74 $response[
'recordId'] = $record->getId();
75 $response[
'version'] = $record->getVersion();
80 $updateResponses = array();
81 foreach ($updates as $updateInfo ){
83 $insertResponses[] =& $response;
84 $record = df_get_record_by_id($updateInfo[
'id']);
86 $response[
'message'] =
'Record '.$updateInfo[
'id'].
' could not be found.';
87 $response[
'code'] = 404;
90 $record->setValues($updateInfo[
'data']);
91 $res = $record->save(null,
true);
93 $response[
'message'] = $res->getMessage(),
94 $response[
'code'] = $res->getCode();
97 $response[
'message'] =
'Updated record';
98 $response[
'code'] = 200;
99 $response[
'recordId'] = $record->getId();
100 $response[
'version'] = $record->getVersion();
108 header(
'Content-type: text/json; charset="'.
$app->_conf[
'oe'].
'"');
111 'code' => ($numFailures == 0 and $numSuccesses > 0) ? 200 :
112 ($numSuccesses > 0) ? 201 : 202,
113 'message' => $numSuccesses .
' successes. '. $numFailures.
' failures.',
114 'numSuccesses' => $numSuccesses,
115 'numFailures' => $numFailures,
116 'responses' => array(
117 'updates' => $updateResponses,
118 'inserts' => $insertResponses,
119 'deletes' => $deleteResponses
122 echo json_encode(
$out);