Files
old-svijetlastrana/domain/service/organization.go
2018-05-22 12:40:22 +02:00

118 lines
4.4 KiB
Go

package service
import (
"bitbucket.org/nemt/nemt-portal-api/domain/entity"
)
// userService is the domain service for user operations
type organizationService struct {
svc *Service
}
// newUserService returns an instance of userService
func newOrganizationService(svc *Service) *organizationService {
return &organizationService{
svc: svc,
}
}
func (s *organizationService) GetAllTypes() ([]entity.OrganizationType, error) {
return s.svc.db.Organization().GetAllTypes()
}
func (s *organizationService) GetByType(organizationTypeKey string, user entity.User) ([]entity.Organization, error) {
return s.svc.db.Organization().GetByType(organizationTypeKey, user)
}
func (s *organizationService) GetByName(name string, searchType string, user entity.User) ([]entity.Organization, error) {
return s.svc.db.Organization().GetByName(name, searchType, user)
}
func (s *organizationService) GetByTypeAndReferenceID(typeKey string, referenceID int64, user entity.User) (entity.Organization, error) {
return s.svc.db.Organization().GetByTypeAndReferenceID(typeKey, referenceID, user)
}
func (s *organizationService) GetByUUID(organizationUUID string, user entity.User) (entity.Organization, error) {
organization, err := s.svc.db.Organization().GetByUUID(organizationUUID, user)
if err != nil {
return organization, err
}
organization.Contacts, err = s.GetContactsByOrganizationID(organization.ID)
if err != nil {
return organization, err
}
organization.Addresses, err = s.GetAddressByOrganizationID(organization.ID)
if err != nil {
return organization, err
}
organization.ChildOrgs, err = s.svc.db.Organization().GetChildsByID(organization.ID, user)
if err != nil {
return organization, err
}
if organization.ParentID > 0 {
parent, err := s.svc.db.Organization().GetByID(organization.ParentID, user)
if err != nil {
return organization, err
}
organization.Parent = &parent
}
return organization, nil
}
func (s *organizationService) SetParentOrganization(organizationID int64, parentOrganizationID int64) error {
return s.svc.db.Organization().SetParentOrganization(organizationID, parentOrganizationID)
}
func (s *organizationService) GetContactsByOrganizationUUID(organizationUUID string) ([]entity.OrganizationContact, error) {
return s.svc.db.Organization().GetContactsByOrganizationUUID(organizationUUID)
}
func (s *organizationService) GetContactsByOrganizationID(organizationID int64) ([]entity.OrganizationContact, error) {
return s.svc.db.Organization().GetContactsByOrganizationID(organizationID)
}
func (s *organizationService) GetContactsByUUID(contactUUID string) (entity.OrganizationContact, error) {
return s.svc.db.Organization().GetContactsByUUID(contactUUID)
}
func (s *organizationService) GetAddressByOrganizationUUID(organizationUUID string) ([]entity.OrganizationAddress, error) {
return s.svc.db.Organization().GetAddressByOrganizationUUID(organizationUUID)
}
func (s *organizationService) GetAddressByOrganizationID(organizationID int64) ([]entity.OrganizationAddress, error) {
return s.svc.db.Organization().GetAddressByOrganizationID(organizationID)
}
func (s *organizationService) GetAddressByUUID(contactUUID string) (entity.OrganizationAddress, error) {
return s.svc.db.Organization().GetAddressByUUID(contactUUID)
}
func (s *organizationService) InactivateOrganizationAddress(address entity.OrganizationAddress, user entity.User) error {
return s.svc.db.Organization().InactivateOrganizationAddress(address, user)
}
func (s *organizationService) SetOrganizationAddress(address entity.OrganizationAddress, user entity.User) (entity.OrganizationAddress, error) {
return s.svc.db.Organization().SetOrganizationAddress(address, user)
}
func (s *organizationService) InactivateOrganizationContact(contact entity.OrganizationContact, user entity.User) error {
return s.svc.db.Organization().InactivateOrganizationContact(contact, user)
}
func (s *organizationService) SetOrganizationContact(contact entity.OrganizationContact, user entity.User) (entity.OrganizationContact, error) {
return s.svc.db.Organization().SetOrganizationContact(contact, user)
}
func (s *organizationService) AddOrganization(organization entity.Organization, user entity.User) (entity.Organization, error) {
return s.svc.db.Organization().AddOrganization(organization, user)
}
func (s *organizationService) GetTypeByKey(key string) (entity.OrganizationType, error) {
return s.svc.db.Organization().GetTypeByKey(key)
}