From ed0a22eb731466c05182881ef495ce01f2c84c22 Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Tue, 11 Nov 2025 11:24:07 +0700 Subject: [PATCH 1/5] adjust org after refactor --- .../domain/main-entities/installation/dto.go | 13 +++++++------ .../main-handler/installation/handler.go | 18 +++++++++--------- .../main-use-case/installation/case.go | 4 ++-- .../main-use-case/installation/helper.go | 2 +- .../use-case/main-use-case/installation/lib.go | 9 ++++++++- .../main-use-case/specialist-position/case.go | 4 ++-- .../main-use-case/specialist-position/lib.go | 2 +- .../main-use-case/unit-position/lib.go | 2 +- 8 files changed, 31 insertions(+), 23 deletions(-) diff --git a/internal/domain/main-entities/installation/dto.go b/internal/domain/main-entities/installation/dto.go index 302025d8..758efb05 100644 --- a/internal/domain/main-entities/installation/dto.go +++ b/internal/domain/main-entities/installation/dto.go @@ -8,7 +8,7 @@ import ( ) type CreateDto struct { - Code string `json:"code" validate:"maxLength=10"` + Code *string `json:"code" validate:"maxLength=10"` Name string `json:"name" validate:"maxLength=50"` EncounterClass_Code ere.EncounterClassCode `json:"encounterClass_code" validate:"maxLength=10"` } @@ -21,25 +21,26 @@ type ReadListDto struct { } type FilterDto struct { - Code string `json:"code"` - Name string `json:"name"` + Code *string `json:"code"` + Name *string `json:"name"` EncounterClass_Code ere.EncounterClassCode `json:"encounterClass-code"` Search string `json:"search" gormhelper:"searchColumns=Code,Name"` } type ReadDetailDto struct { - Id uint16 `json:"id"` + Id *uint16 `json:"id"` Code *string `json:"code"` Includes string `json:"includes"` } type UpdateDto struct { - Id uint16 `json:"id"` + Id *uint16 `json:"id"` CreateDto } type DeleteDto struct { - Id uint16 `json:"id"` + Id *uint16 `json:"id"` + Code *string `json:"code"` } type MetaDto struct { diff --git a/internal/interface/main-handler/installation/handler.go b/internal/interface/main-handler/installation/handler.go index 26885689..0b3f52ef 100644 --- a/internal/interface/main-handler/installation/handler.go +++ b/internal/interface/main-handler/installation/handler.go @@ -33,21 +33,21 @@ func (obj myBase) GetList(w http.ResponseWriter, r *http.Request) { } func (obj myBase) GetDetail(w http.ResponseWriter, r *http.Request) { - id := rw.ValidateInt(w, "id", r.PathValue("id")) - if id <= 0 { + code := rw.ValidateString(w, "code", r.PathValue("code")) + if code == "" { return } dto := e.ReadDetailDto{} sf.UrlQueryParam(&dto, *r.URL) - dto.Id = uint16(id) + dto.Code = &code res, err := u.ReadDetail(dto) rw.DataResponse(w, res, err) } func (obj myBase) Update(w http.ResponseWriter, r *http.Request) { - id := rw.ValidateInt(w, "id", r.PathValue("id")) - if id <= 0 { + code := rw.ValidateString(w, "code", r.PathValue("code")) + if code == "" { return } @@ -55,19 +55,19 @@ func (obj myBase) Update(w http.ResponseWriter, r *http.Request) { if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res { return } - dto.Id = uint16(id) + dto.Code = &code res, err := u.Update(dto) rw.DataResponse(w, res, err) } func (obj myBase) Delete(w http.ResponseWriter, r *http.Request) { - id := rw.ValidateInt(w, "id", r.PathValue("id")) - if id <= 0 { + code := rw.ValidateString(w, "code", r.PathValue("code")) + if code == "" { return } dto := e.DeleteDto{} - dto.Id = uint16(id) + dto.Code = &code res, err := u.Delete(dto) rw.DataResponse(w, res, err) } diff --git a/internal/use-case/main-use-case/installation/case.go b/internal/use-case/main-use-case/installation/case.go index 5e1339da..f66bedaf 100644 --- a/internal/use-case/main-use-case/installation/case.go +++ b/internal/use-case/main-use-case/installation/case.go @@ -166,7 +166,7 @@ func ReadDetail(input e.ReadDetailDto) (*d.Data, error) { } func Update(input e.UpdateDto) (*d.Data, error) { - rdDto := e.ReadDetailDto{Id: input.Id} + rdDto := e.ReadDetailDto{Code: input.Code} var data *e.Installation var err error @@ -222,7 +222,7 @@ func Update(input e.UpdateDto) (*d.Data, error) { } func Delete(input e.DeleteDto) (*d.Data, error) { - rdDto := e.ReadDetailDto{Id: input.Id} + rdDto := e.ReadDetailDto{Code: input.Code} var data *e.Installation var err error diff --git a/internal/use-case/main-use-case/installation/helper.go b/internal/use-case/main-use-case/installation/helper.go index 3ad22892..d3d96b5c 100644 --- a/internal/use-case/main-use-case/installation/helper.go +++ b/internal/use-case/main-use-case/installation/helper.go @@ -17,7 +17,7 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Installation) { inputSrc = &inputTemp.CreateDto } - data.Code = inputSrc.Code + data.Code = *inputSrc.Code data.Name = inputSrc.Name data.EncounterClass_Code = inputSrc.EncounterClass_Code } diff --git a/internal/use-case/main-use-case/installation/lib.go b/internal/use-case/main-use-case/installation/lib.go index 82130c32..d75b2ecd 100644 --- a/internal/use-case/main-use-case/installation/lib.go +++ b/internal/use-case/main-use-case/installation/lib.go @@ -81,9 +81,16 @@ func ReadDetailData(input e.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (*e tx = dg.I } + if input.Code != nil { + tx = tx.Where("\"Code\" = ?", *input.Code) + } + if input.Id != nil { + tx = tx.Where("\"Id\" = ?", *input.Id) + } + if err := tx. Scopes(gh.Preload(input.Includes)). - First(&data, input.Id).Error; err != nil { + First(&data).Error; err != nil { if processedErr := pu.HandleReadError(err, event, source, input.Id, data); processedErr != nil { return nil, processedErr } diff --git a/internal/use-case/main-use-case/specialist-position/case.go b/internal/use-case/main-use-case/specialist-position/case.go index 2addf80d..f4031b2f 100644 --- a/internal/use-case/main-use-case/specialist-position/case.go +++ b/internal/use-case/main-use-case/specialist-position/case.go @@ -175,7 +175,7 @@ func ReadDetail(input e.ReadDetailDto) (*d.Data, error) { } func Update(input e.UpdateDto) (*d.Data, error) { - rdDto := e.ReadDetailDto{Id: input.Id} + rdDto := e.ReadDetailDto{Code: &input.Code} var data *e.SpecialistPosition var err error @@ -235,7 +235,7 @@ func Update(input e.UpdateDto) (*d.Data, error) { } func Delete(input e.DeleteDto) (*d.Data, error) { - rdDto := e.ReadDetailDto{Id: input.Id} + rdDto := e.ReadDetailDto{Code: input.Code} var data *e.SpecialistPosition var err error diff --git a/internal/use-case/main-use-case/specialist-position/lib.go b/internal/use-case/main-use-case/specialist-position/lib.go index 13c84f28..fea6bb9d 100644 --- a/internal/use-case/main-use-case/specialist-position/lib.go +++ b/internal/use-case/main-use-case/specialist-position/lib.go @@ -86,7 +86,7 @@ func ReadDetailData(input e.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (*e case input.Id != nil: getData = tx.First(&data, input.Id) case input.Code != nil && *input.Code != "": - getData = tx.Where("code = ?", *input.Code).First(&data) + getData = tx.Where("\"Code\" = ?", *input.Code).First(&data) default: event.Status = "failed" event.ErrInfo = pl.ErrorInfo{ diff --git a/internal/use-case/main-use-case/unit-position/lib.go b/internal/use-case/main-use-case/unit-position/lib.go index d6f42936..104357e5 100644 --- a/internal/use-case/main-use-case/unit-position/lib.go +++ b/internal/use-case/main-use-case/unit-position/lib.go @@ -86,7 +86,7 @@ func ReadDetailData(input e.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (*e case input.Id != nil: getData = tx.First(&data, input.Id) case input.Code != nil && *input.Code != "": - getData = tx.Where("code = ?", *input.Code).First(&data) + getData = tx.Where("\"Code\" = ?", *input.Code).First(&data) default: event.Status = "failed" event.ErrInfo = pl.ErrorInfo{ From 6db21ad11405aaa1094564bfbb04ca69e7621e3d Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Tue, 11 Nov 2025 11:39:44 +0700 Subject: [PATCH 2/5] fix (subspecialist): change source, wrong query --- internal/use-case/main-use-case/subspecialist/case.go | 2 +- internal/use-case/main-use-case/subspecialist/lib.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/use-case/main-use-case/subspecialist/case.go b/internal/use-case/main-use-case/subspecialist/case.go index 42366adf..51509c47 100644 --- a/internal/use-case/main-use-case/subspecialist/case.go +++ b/internal/use-case/main-use-case/subspecialist/case.go @@ -13,7 +13,7 @@ import ( "gorm.io/gorm" ) -const source = "specialist" +const source = "subspecialist" func Create(input e.CreateDto) (*d.Data, error) { data := e.Subspecialist{} diff --git a/internal/use-case/main-use-case/subspecialist/lib.go b/internal/use-case/main-use-case/subspecialist/lib.go index a6c4dbc5..c5a742df 100644 --- a/internal/use-case/main-use-case/subspecialist/lib.go +++ b/internal/use-case/main-use-case/subspecialist/lib.go @@ -90,7 +90,7 @@ func ReadDetailData(input e.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (*e if err := tx. Scopes(gh.Preload(input.Includes)). - First(&data, input.Id).Error; err != nil { + First(&data).Error; err != nil { if processedErr := pu.HandleReadError(err, event, source, input.Id, data); processedErr != nil { return nil, processedErr } From c6f5bbe8a2ac4cf944945117a3911bf6295750c2 Mon Sep 17 00:00:00 2001 From: vanilia Date: Tue, 11 Nov 2025 14:21:17 +0700 Subject: [PATCH 3/5] update encounter cancel flow --- .../use-case/main-use-case/encounter/case.go | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/internal/use-case/main-use-case/encounter/case.go b/internal/use-case/main-use-case/encounter/case.go index d387fcc2..9381e639 100644 --- a/internal/use-case/main-use-case/encounter/case.go +++ b/internal/use-case/main-use-case/encounter/case.go @@ -3,6 +3,7 @@ package encounter import ( "errors" "fmt" + us "simrs-vx/internal/use-case/main-use-case/soapi" "strconv" "time" @@ -489,6 +490,32 @@ func UpdateStatusCode(input e.UpdateStatusDto) (*d.Data, error) { return pl.SetLogError(&event, input) } + if input.StatusCode == erc.DSCCancel { + // TODO: Prevent cancellation if the billing has been verified + + // TODO: Only "supervisi pendaftaran" could cancel encounter + + // Prevent cancellation if soapi exist + encounterId := uint(input.Id) + dataSoapi, _, err := us.ReadListData(es.ReadListDto{ + FilterDto: es.FilterDto{ + Encounter_Id: &encounterId, + }}, &event, tx) + if err != nil { + return err + } + + if len(dataSoapi) > 0 { + event.Status = "failed" + event.ErrInfo = pl.ErrorInfo{ + Code: "cancel-not-allowed", + Detail: "encounter can't be cancelled because SOAPI already exists", + Raw: errors.New("encounter has SOAPI records"), + } + return pl.SetLogError(&event, input) + } + } + mwRunner := newMiddlewareRunner(&event, tx) mwRunner.setMwType(pu.MWTPre) // Run pre-middleware From 06fca51bcc4b8b178cbc1bf9d9ebf8c308a20e27 Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Tue, 11 Nov 2025 15:34:33 +0700 Subject: [PATCH 4/5] fix conflict auth --- .../main-use-case/authentication/case.go | 155 +----------------- .../main-use-case/authentication/helper.go | 9 + 2 files changed, 14 insertions(+), 150 deletions(-) diff --git a/internal/use-case/main-use-case/authentication/case.go b/internal/use-case/main-use-case/authentication/case.go index ab071c66..15f18ef8 100644 --- a/internal/use-case/main-use-case/authentication/case.go +++ b/internal/use-case/main-use-case/authentication/case.go @@ -18,14 +18,9 @@ import ( pl "simrs-vx/pkg/logger" p "simrs-vx/pkg/password" - ed "simrs-vx/internal/domain/main-entities/doctor" - ee "simrs-vx/internal/domain/main-entities/employee" - "simrs-vx/internal/domain/main-entities/intern" - em "simrs-vx/internal/domain/main-entities/midwife" - en "simrs-vx/internal/domain/main-entities/nurse" + eap "simrs-vx/internal/domain/main-entities/auth-partner" eu "simrs-vx/internal/domain/main-entities/user" euf "simrs-vx/internal/domain/main-entities/user-fes" - erc "simrs-vx/internal/domain/references/common" ) @@ -85,152 +80,12 @@ func GenToken(input eu.LoginDto) (*d.Data, error) { // Data and output population atClaims := jwt.MapClaims{} - atClaims["user_id"] = user.Id - atClaims["user_name"] = user.Name - atClaims["user_contractPosition_code"] = user.ContractPosition_Code - atClaims["uuid"] = aUuid - atClaims["exp"] = atExpires - - // Create output - outputData := d.II{ - "user_id": strconv.Itoa(int(user.Id)), - "user_name": user.Name, - "user_contractPosition_code": user.ContractPosition_Code, - } - - // extra - role := []string{} - switch user.ContractPosition_Code { - case erg.CSCEmp: - // employee - employee := ee.Employee{} - dg.I.Where("\"User_Id\" = ?", user.Id).First(&employee) - if employee.Id == 0 { - return nil, d.FieldErrors{"authentication": d.FieldError{Code: "auth-noEmployee", Message: pl.GenMessage("auth-noEmployee")}} - } - atClaims["employee_id"] = employee.Id - outputData["employee_id"] = employee.Id - role = append(role, "emp-"+string(*employee.Position_Code)) - - //if employee.Division_Code != nil { - // atClaims["employee_division_code"] = employee.Division_Code - // outputData["employee_division_code"] = employee.Division_Code - //} - - // employee position - if employee.Id > 0 && employee.Position_Code != nil { - atClaims["employee_position_code"] = *employee.Position_Code - switch *employee.Position_Code { - case erg.EPCDoc: - doctor := ed.Doctor{} - dg.I.Where("\"Employee_Id\" = ?", employee.Id).First(&doctor) - if doctor.Id == 0 { - return nil, d.FieldErrors{"authentication": d.FieldError{Code: "auth-noDoctor", Message: pl.GenMessage("auth-noDoctor")}} - } - atClaims["doctor_code"] = doctor.Code - outputData["doctor_code"] = doctor.Code - - // specialist - if doctor.Specialist_Code != nil { - atClaims["specialist_code"] = doctor.Specialist_Code - outputData["specialist_code"] = doctor.Specialist_Code - } - if doctor.Subspecialist_Code != nil { - atClaims["subspecialist_code"] = doctor.Subspecialist_Code - outputData["subspecialist_code"] = doctor.Subspecialist_Code - } - case erg.EPCNur: - empData := en.Nurse{} - dg.I.Where("\"Employee_Id\" = ?", employee.Id).First(&empData) - if empData.Id == 0 { - return nil, d.FieldErrors{"authentication": d.FieldError{Code: "auth-noNurse", Message: pl.GenMessage("auth-noNurse")}} - } - atClaims["nurse_code"] = empData.Code - outputData["nurse_code"] = empData.Code - case erg.EPCMwi: - empData := em.Midwife{} - dg.I.Where("\"Employee_Id\" = ?", employee.Id).First(&empData) - if empData.Id == 0 { - return nil, d.FieldErrors{"authentication": d.FieldError{Code: "auth-noMidwife", Message: pl.GenMessage("auth-noMidwife")}} - } - atClaims["midwife_code"] = empData.Code - outputData["midwife_code"] = empData.Code - case erg.EPCPha: - empData := ep.Pharmacist{} - dg.I.Where("\"Employee_Id\" = ?", employee.Id).First(&empData) - if empData.Id == 0 { - return nil, d.FieldErrors{"authentication": d.FieldError{Code: "auth-noPharmacist", Message: pl.GenMessage("auth-noPharmacist")}} - } - atClaims["pharmacist_code"] = empData.Code - outputData["pharmacist_code"] = empData.Code - } - - errorGetPosition := d.FieldErrors{"authentication": d.FieldError{Code: "auth-getData-failed", Message: pl.GenMessage("auth-getData-failed")}} - - // division position - divisionPositions, err := getDivisionPosition(employee.Id, &event) - if err != nil { - return nil, errorGetPosition - } - - // installation position - installationPositions, err := getInstallationPosition(employee.Id, &event) - if err != nil { - return nil, errorGetPosition - } - - // unit position - unitPositions, err := getUnitPosition(employee.Id, &event) - if err != nil { - return nil, errorGetPosition - } - - // specialist position - specialistPositions, err := getSpecialistPosition(employee.Id, &event) - if err != nil { - return nil, errorGetPosition - } - - // subspecialist position - subspecialistPositions, err := getSubspecialistPosition(employee.Id, &event) - if err != nil { - return nil, errorGetPosition - } - - role = append(role, divisionPositions...) - role = append(role, installationPositions...) - role = append(role, unitPositions...) - role = append(role, specialistPositions...) - role = append(role, subspecialistPositions...) - // atClaims["division_positions"] = divsionPositions - // outputData["division_positions"] = divsionPositions - } - case erg.CSCInt: - intern := intern.Intern{} - dg.I.Where("\"User_Id\" = ?", user.Id).First(&intern) - role = append(role, "int-"+string(*intern.Position_Code)) - case erg.CSCSys: - role = append(role, "system") - } - atClaims["roles"] = role - outputData["roles"] = role - - // Generate jwt - at := jwt.NewWithClaims(jwt.SigningMethodHS256, atClaims) - ats, err := at.SignedString([]byte(atSecretKey)) - if err != nil { - return nil, d.FieldErrors{"user": d.FieldError{Code: "token-sign-err", Message: pl.GenMessage("token-sign-err")}} - } - outputData["accessToken"] = ats - - // Save to redis - now := time.Now() - atx := time.Unix(atExpires, 0) //converting Unix to UTC(to Time object) - err = ms.I.Set(aUuid, strconv.Itoa(int(user.Id)), atx.Sub(now)).Err() - if err != nil { - panic(fmt.Sprintf(l.I.Msg("redis-store-fail"), err.Error())) + outputData := d.II{} + if err := populateRoles(user, input, atClaims, outputData, event); err != nil { + return nil, err } + // Only manual login tn := time.Now() user.LoginAttemptCount = 0 user.LastSuccessLogin = &tn diff --git a/internal/use-case/main-use-case/authentication/helper.go b/internal/use-case/main-use-case/authentication/helper.go index b7ccc660..d0fe1af1 100644 --- a/internal/use-case/main-use-case/authentication/helper.go +++ b/internal/use-case/main-use-case/authentication/helper.go @@ -21,6 +21,7 @@ import ( "simrs-vx/internal/domain/main-entities/intern" em "simrs-vx/internal/domain/main-entities/midwife" en "simrs-vx/internal/domain/main-entities/nurse" + ep "simrs-vx/internal/domain/main-entities/pharmacist" esp "simrs-vx/internal/domain/main-entities/specialist-position" essp "simrs-vx/internal/domain/main-entities/subspecialist-position" eup "simrs-vx/internal/domain/main-entities/unit-position" @@ -249,6 +250,14 @@ func populateRoles(user *eu.User, input eu.LoginDto, atClaims jwt.MapClaims, out } atClaims["midwife_code"] = empData.Code outputData["midwife_code"] = empData.Code + case erg.EPCPha: + empData := ep.Pharmacist{} + dg.I.Where("\"Employee_Id\" = ?", employee.Id).First(&empData) + if empData.Id == 0 { + return d.FieldErrors{"authentication": d.FieldError{Code: "auth-noPharmacist", Message: pl.GenMessage("auth-noPharmacist")}} + } + atClaims["pharmacist_code"] = empData.Code + outputData["pharmacist_code"] = empData.Code } errorGetPosition := d.FieldErrors{"authentication": d.FieldError{Code: "auth-getData-failed", Message: pl.GenMessage("auth-getData-failed")}} From a365f2aff615a5b18f41a3ff6a178965757f78bc Mon Sep 17 00:00:00 2001 From: Munawwirul Jamal Date: Wed, 12 Nov 2025 07:20:51 +0700 Subject: [PATCH 5/5] feat/sso-auth: adjust role const --- .../references/organization/organization.go | 28 +++++++++---------- .../main-use-case/authentication/helper.go | 12 ++++---- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/internal/domain/references/organization/organization.go b/internal/domain/references/organization/organization.go index 1dfe93ad..09b19dce 100644 --- a/internal/domain/references/organization/organization.go +++ b/internal/domain/references/organization/organization.go @@ -11,21 +11,21 @@ type ( ) const ( - CSCSys ContractPositionCode = "system" // System - CSCEmp ContractPositionCode = "employee" // Pegawai - CSCInt ContractPositionCode = "intern" // PPDS + CSCSys ContractPositionCode = "sys" // System + CSCEmp ContractPositionCode = "emp" // Pegawai + CSCInt ContractPositionCode = "int" // PPDS - EPCReg EmployeePositionCode = "registration" // Admisi/Pendaftaran - EPCNur EmployeePositionCode = "nurse" // Perawat - EPCDoc EmployeePositionCode = "doctor" // Dokter - EPCNut EmployeePositionCode = "nutritionist" // Ahli gizi - EPCMwi EmployeePositionCode = "mid-wife" // Bidan - EPCLab EmployeePositionCode = "laborant" // Laboran - EPCPha EmployeePositionCode = "pharmacy" // Farmasi - EPCPay EmployeePositionCode = "payment" // Pembayaran - EPCHur EmployeePositionCode = "human-resource" // Sumber Daya Manusia - EPCGea EmployeePositionCode = "general-affair" // Bagian Umum - EPCMan EmployeePositionCode = "management" // Manajemen + EPCReg EmployeePositionCode = "reg" // Admisi/Pendaftaran + EPCNur EmployeePositionCode = "nur" // Perawat + EPCDoc EmployeePositionCode = "doc" // Dokter + EPCNut EmployeePositionCode = "nut" // Ahli gizi + EPCMwi EmployeePositionCode = "miw" // Bidan + EPCLab EmployeePositionCode = "lab" // Laboran + EPCPha EmployeePositionCode = "pha" // Farmasi + EPCPay EmployeePositionCode = "pay" // Pembayaran + EPCHur EmployeePositionCode = "hue" // Sumber Daya Manusia + EPCGea EmployeePositionCode = "gea" // Bagian Umum + EPCMan EmployeePositionCode = "man" // Manajemen IPCSpecialist = "specialist-intern" IPCNurse = "nurse-intern" diff --git a/internal/use-case/main-use-case/authentication/helper.go b/internal/use-case/main-use-case/authentication/helper.go index b7ccc660..37afa11b 100644 --- a/internal/use-case/main-use-case/authentication/helper.go +++ b/internal/use-case/main-use-case/authentication/helper.go @@ -70,7 +70,7 @@ func getDivisionPosition(employee_id uint, event *pl.Event) ([]string, error) { if len(data) > 0 { for _, dp := range data { - result = append(result, "div-"+*dp.Division_Code) + result = append(result, "div|"+*dp.Division_Code+"|"+dp.Code) } } @@ -90,7 +90,7 @@ func getInstallationPosition(employeeId uint, event *pl.Event) ([]string, error) if len(data) > 0 { for _, dp := range data { - result = append(result, "inst-"+*dp.Installation_Code+"-"+dp.Code) + result = append(result, "inst|"+*dp.Installation_Code+"|"+dp.Code) } } @@ -108,7 +108,7 @@ func getUnitPosition(employeeId uint, event *pl.Event) ([]string, error) { if len(data) > 0 { for _, dp := range data { - result = append(result, "unit-"+*dp.Unit_Code+"-"+dp.Code) + result = append(result, "unit|"+*dp.Unit_Code+"|"+dp.Code) } } @@ -126,7 +126,7 @@ func getSpecialistPosition(employeeId uint, event *pl.Event) ([]string, error) { if len(data) > 0 { for _, dp := range data { - result = append(result, "spec-"+*dp.Specialist_Code+"-"+dp.Code) + result = append(result, "spec|"+*dp.Specialist_Code+"|"+dp.Code) } } @@ -146,7 +146,7 @@ func getSubspecialistPosition(employeeId uint, event *pl.Event) ([]string, error if len(data) > 0 { for _, dp := range data { - result = append(result, "subspec-"+dp.Subspecialist.Code+"-"+dp.Code) + result = append(result, "subspec|"+dp.Subspecialist.Code+"|"+dp.Code) } } @@ -209,7 +209,7 @@ func populateRoles(user *eu.User, input eu.LoginDto, atClaims jwt.MapClaims, out } atClaims["employee_id"] = employee.Id outputData["employee_id"] = employee.Id - roles = append(roles, "emp-"+string(*employee.Position_Code)) + roles = append(roles, "emp|"+string(*employee.Position_Code)) // employee position if employee.Id > 0 && employee.Position_Code != nil {