package service import ( "xps/datamodels" "xps/datasource" "xps/repositories" ) type CompanyProfileService interface{ GetById(ocId int64)(*datamodels.Company, error) Update(data *datamodels.Company) error } type cmpProfileService struct { companyRepo *repositories.CompanyRepo ocRepo *repositories.OcRepo groupRepo *repositories.GroupRepo } func NewCompanyProfileService() CompanyProfileService { engine := datasource.InstanceMaster() return &cmpProfileService{ companyRepo: repositories.NewCompanyRepo(engine), ocRepo: repositories.NewOcRepo(engine), groupRepo: repositories.NewGroupRepo(engine), } } func (s *cmpProfileService) GetById(ocId int64)(*datamodels.Company, error){ return s.companyRepo.GetById(ocId) } func (s *cmpProfileService) Update(data *datamodels.Company) error{ ocId := data.OcId oc := &datamodels.Oc{} oc.OcId = ocId oc.OcName = data.CmpName err := s.ocRepo.Update(oc) if err != nil { return err } group := &datamodels.Group{GroupName: data.CmpName} group.OcId = ocId group.GroupId = ocId group.GroupName = data.CmpName err = s.groupRepo.Update(group) if err != nil { return err } return s.companyRepo.Update(ocId, data) }