/** * @param Request $request * @param array $params * @return Reply */ public function Delete(Request $request, $params = []) { // $request is unused in this implementation $request = null; if (empty($params)) { // cannot delete if we don't have an id return new Reply(422, ['error' => 'ID is required for DELETE operation.']); } else { if ($this->authUserFilter && !isset($this->authUser)) { return new Reply(403, ['error' => 'Must be logged in to access this resource.']); } $id = $params[0]; $delete = $this->mapper->GetOneById($id); if ($this->authUserFilter) { if ($delete->{$this->authUserIDProperty} !== $this->authUser->GetID()) { $delete = null; } } if (!isset($delete)) { return new Reply(403, ['error' => 'Must be logged in to access this resource.']); } else { $this->mapper->Delete($delete); return new Reply(204, ['success' => 'The item was deleted.']); } } }