package appunti import ( "git.phc.dm.unipi.it/phc/website/database" "git.phc.dm.unipi.it/phc/website/model" ) // Service isola l'handler dal modulo del database e si occupa solo delle interazioni riguardanti gli appunti e le dispense type Service interface { GetDispensa(id string) (*model.Dispensa, error) CreateDispensa(template model.Dispensa) (string, error) } type DefaultService struct { DB *database.DB } var _ Service = &DefaultService{} func (s *DefaultService) GetDispensa(id string) (*model.Dispensa, error) { dispensa, err := s.DB.Dispense.Get(id) if err != nil { return nil, err } tags, err := s.DB.DispensaTags.Get(id) if err != nil { return nil, err } return &model.Dispensa{ Id: dispensa.Id, OwnerId: dispensa.OwnerId, Title: dispensa.Title, Description: dispensa.Description, Tags: tags, }, nil } func (s *DefaultService) CreateDispensa(template model.Dispensa) (string, error) { dispensaId, err := s.DB.Dispense.Create(database.Dispensa{ OwnerId: template.OwnerId, Title: template.Title, Description: template.Description, }) if err != nil { return "", err } if err := s.DB.DispensaTags.Set(dispensaId, template.Tags); err != nil { return "", err } return dispensaId, nil }