Esempio n. 1
0
 public function put($resource, $id, $request, $response)
 {
     $format = strtolower($request->params('format'));
     $DOName = $this->getDOName($resource);
     if (empty($DOName)) {
         $response->status(404);
         $response->body("Resource '{$resource}' is not found.");
         return;
     }
     $dataObj = BizSystem::getObject($DOName);
     $rec = $dataObj->fetchById($id);
     if (empty($rec)) {
         $response->status(404);
         $response->body("No data is found for {$resource} {$id}");
         return;
     }
     $dataRec = new DataRecord($rec, $dataObj);
     $inputRecord = json_decode($request->getBody());
     if ($inputRecord->password != $inputRecord->password_repeat) {
         $errors['password_repeat'] = "Password repeat is not same as password";
         $this->setErrorResponse(400, $errors, $response, $format);
         return;
     }
     foreach ($inputRecord as $k => $v) {
         // if password is ********, ignore password value
         if ($k == 'password' && $v == '********') {
             continue;
         }
         if ($k == 'password') {
             $v = hash(HASH_ALG, $v);
         }
         if ($k == 'password_repeat') {
             continue;
         }
         $dataRec[$k] = $v;
         // or $dataRec->$k = $v;
     }
     try {
         $dataRec->save();
     } catch (ValidationException $e) {
         $response->status(400);
         $errmsg = implode("\n", $e->m_Errors);
         $response->body($errmsg);
         return;
     } catch (BDOException $e) {
         $response->status(400);
         $response->body($e->getMessage());
         return;
     }
     return $this->setResponse($dataRec->toArray(), $response, $format);
 }
Esempio n. 2
0
 public function delete($resource, $id, $request, $response)
 {
     $DOName = $this->getDOName($resource);
     if (empty($DOName)) {
         $response->status(404);
         $response->body("Resource '{$resource}' is not found.");
         return;
     }
     $dataObj = BizSystem::getObject($DOName);
     $rec = $dataObj->fetchById($id);
     if (empty($rec)) {
         $response->status(404);
         $response->body("No data is found for {$resource} {$id}");
         return;
     }
     $dataRec = new DataRecord($rec, $dataObj);
     try {
         $dataRec->delete();
     } catch (BDOException $e) {
         $response->status(500);
         $response->body($e->getMessage());
         return;
     }
     $format = strtolower($request->params('format'));
     return $this->setResponse($dataRec->toArray(), $response, $format);
 }