enh: return created status code

Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit bdf07413d0)
This commit is contained in:
Christopher Ng 2023-07-31 12:10:50 -07:00
parent 332fd3d93b
commit 8a410f19b4
2 changed files with 9 additions and 2 deletions

View file

@ -94,7 +94,10 @@ class ApiController extends OCSController {
}
try {
$this->reminderService->createOrUpdate($user, $fileId, $dueDate);
$created = $this->reminderService->createOrUpdate($user, $fileId, $dueDate);
if ($created) {
return new JSONResponse([], Http::STATUS_CREATED);
}
return new JSONResponse([], Http::STATUS_OK);
} catch (NodeNotFoundException $e) {
return new JSONResponse([], Http::STATUS_NOT_FOUND);

View file

@ -80,15 +80,18 @@ class ReminderService {
}
/**
* @return bool true if created, false if updated
*
* @throws NodeNotFoundException
*/
public function createOrUpdate(IUser $user, int $fileId, DateTime $dueDate): void {
public function createOrUpdate(IUser $user, int $fileId, DateTime $dueDate): bool {
$now = new DateTime('now', new DateTimeZone('UTC'));
try {
$reminder = $this->reminderMapper->findDueForUser($user, $fileId);
$reminder->setDueDate($dueDate);
$reminder->setUpdatedAt($now);
$this->reminderMapper->update($reminder);
return false;
} catch (DoesNotExistException $e) {
$nodes = $this->root->getUserFolder($user->getUID())->getById($fileId);
if (empty($nodes)) {
@ -102,6 +105,7 @@ class ReminderService {
$reminder->setUpdatedAt($now);
$reminder->setCreatedAt($now);
$this->reminderMapper->insert($reminder);
return true;
}
}