feat: tag system
This commit is contained in:
@ -4,6 +4,7 @@ import (
|
||||
"donniemarko/internal/note"
|
||||
"donniemarko/internal/storage"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type NotesService struct {
|
||||
@ -91,3 +92,33 @@ func (s *NotesService) GetNoteByHash(hash string) (*note.Note, error) {
|
||||
func (s *NotesService) GetNotes() []*note.Note {
|
||||
return s.storage.GetAll()
|
||||
}
|
||||
|
||||
func (s *NotesService) AddTag(noteID, tag string) error {
|
||||
tag = normalizeTag(tag)
|
||||
if tag == "" {
|
||||
return nil
|
||||
}
|
||||
|
||||
if _, err := s.storage.Get(noteID); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return s.storage.AddTag(noteID, tag)
|
||||
}
|
||||
|
||||
func (s *NotesService) RemoveTag(noteID, tag string) error {
|
||||
tag = normalizeTag(tag)
|
||||
if tag == "" {
|
||||
return nil
|
||||
}
|
||||
|
||||
if _, err := s.storage.Get(noteID); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return s.storage.RemoveTag(noteID, tag)
|
||||
}
|
||||
|
||||
func normalizeTag(tag string) string {
|
||||
return strings.ToLower(strings.TrimSpace(tag))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user