From 2dfd847e1ee6750f516c45320b4a4d328b85f2d8 Mon Sep 17 00:00:00 2001 From: Matias De lellis Date: Tue, 3 Nov 2020 23:26:09 -0300 Subject: [PATCH] Implement create new note with tags. --- lib/Service/NoteService.php | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/Service/NoteService.php b/lib/Service/NoteService.php index 5978277..7d2040a 100644 --- a/lib/Service/NoteService.php +++ b/lib/Service/NoteService.php @@ -180,7 +180,6 @@ class NoteService { $hcolor = $this->colormapper->insert($hcolor); } - // Create note and insert it $note = new Note(); @@ -195,10 +194,31 @@ class NoteService { // TODO: Insert optional shares, tags and attachments. + // Add new tags and update relations. + foreach ($tags as $tag) { + if (!$this->tagmapper->tagExists($userId, $tag['name'])) { + $htag = new Tag(); + $htag->setName($tag['name']); + $htag->setUserId($userId); + $htag = $this->tagmapper->insert($htag); + } + else { + $htag = $this->tagmapper->getTag($userId, $tag['name']); + } + + if (!$this->notetagmapper->noteTagExists($userId, $newNote->getId(), $htag->getId())) { + $noteTag = new NoteTag(); + $noteTag->setNoteId($newNote->getId()); + $noteTag->setTagId($htag->getId()); + $noteTag->setUserId($userId); + $this->notetagmapper->insert($noteTag); + } + } + // Insert true color pin and tags to response $newNote->setColor($hcolor->getColor()); $newNote->setIsPinned($isPinned); - $newNote->setTags([]); + $newNote->setTags($this->tagmapper->getTagsForNote($userId, $newNote->getId())); $newNote->setAttachts([]); return $newNote;