package service import ( "xps/datamodel" "xps/datasource" "xps/repositories" ) type CompanyProfileService interface{ GetById(ocId int64)(*datamodel.Company, error) Update(data *datamodel.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)(*datamodel.Company, error){ return s.companyRepo.GetById(ocId) } func (s *cmpProfileService) Update(data *datamodel.Company) error{ ocId := data.OcId oc := &datamodel.Oc{} oc.OcId = ocId oc.OcName = data.CmpName err := s.ocRepo.Update(oc) if err != nil { return err } group := &datamodel.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) }