package system import ( "xps/datamodels" "xps/datasource" "xps/repositories/system" ) type CompanyProfileService interface{ GetById(ocId int64)(*datamodels.Company, error) Update(data *datamodels.Company) error } type cmpProfileService struct { companyRepo *system.CompanyRepo ocRepo *system.OcRepo groupRepo *system.GroupRepo } func NewCompanyProfileService() CompanyProfileService{ engine := datasource.InstanceMaster() return &cmpProfileService{ companyRepo: system.NewCompanyRepo(engine), ocRepo: system.NewOcRepo(engine), groupRepo: system.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) }