rename and adjust upload code into doctypecode

This commit is contained in:
dpurbosakti
2025-11-17 14:49:34 +07:00
parent b211ae3f24
commit 13ddfaab5f
8 changed files with 59 additions and 57 deletions
@@ -9,12 +9,12 @@ import (
) )
type CreateDto struct { type CreateDto struct {
Encounter_Id *uint `json:"encounter_id"` Encounter_Id *uint `json:"encounter_id"`
Type_Code eru.UploadCode `json:"type_code"` Type_Code eru.DocTypeCode `json:"type_code"`
Name string `json:"name"` Name string `json:"name"`
FilePath string `json:"filePath"` FilePath string `json:"filePath"`
Filename string `json:"-"` Filename string `json:"-"`
Upload_Employee_Id *uint `form:"upload_employee_id"` Upload_Employee_Id *uint `form:"upload_employee_id"`
} }
type ReadListDto struct { type ReadListDto struct {
@@ -24,9 +24,9 @@ type ReadListDto struct {
} }
type FilterDto struct { type FilterDto struct {
Encounter_Id *uint `json:"encounter-id"` Encounter_Id *uint `json:"encounter-id"`
Type_Code eru.UploadCode `json:"type-code"` Type_Code eru.DocTypeCode `json:"type-code"`
Upload_Employee_Id *string `json:"encounter-document-employee-id"` Upload_Employee_Id *string `json:"encounter-document-employee-id"`
} }
type ReadDetailDto struct { type ReadDetailDto struct {
@@ -51,13 +51,13 @@ type MetaDto struct {
type ResponseDto struct { type ResponseDto struct {
ecore.Main ecore.Main
Encounter_Id *uint `json:"encounter_id"` Encounter_Id *uint `json:"encounter_id"`
Type_Code eru.UploadCode `json:"type_code"` Type_Code eru.DocTypeCode `json:"type_code"`
Name string `json:"name"` Name string `json:"name"`
FilePath *string `json:"filePath"` FilePath *string `json:"filePath"`
FileName *string `json:"fileName"` FileName *string `json:"fileName"`
Upload_Employee_Id *uint `json:"upload_employee_id"` Upload_Employee_Id *uint `json:"upload_employee_id"`
Upload_Employee *ee.Employee `json:"upload_employee,omitempty"` Upload_Employee *ee.Employee `json:"upload_employee,omitempty"`
} }
func (d EncounterDocument) ToResponse() ResponseDto { func (d EncounterDocument) ToResponse() ResponseDto {
@@ -8,11 +8,11 @@ import (
type EncounterDocument struct { type EncounterDocument struct {
ecore.Main ecore.Main
Encounter_Id *uint `json:"encounter_id"` Encounter_Id *uint `json:"encounter_id"`
Type_Code eru.UploadCode `json:"type_code"` Type_Code eru.DocTypeCode `json:"type_code"`
Name string `json:"name"` Name string `json:"name"`
FilePath *string `json:"filePath"` FilePath *string `json:"filePath"`
FileName *string `json:"fileName"` FileName *string `json:"fileName"`
Upload_Employee_Id *uint `json:"upload_employee_id"` Upload_Employee_Id *uint `json:"upload_employee_id"`
Upload_Employee *ee.Employee `json:"upload_employee,omitempty" gorm:"foreignKey:Upload_Employee_Id;references:Id"` Upload_Employee *ee.Employee `json:"upload_employee,omitempty" gorm:"foreignKey:Upload_Employee_Id;references:Id"`
} }
+1 -1
View File
@@ -68,7 +68,7 @@ type SearchDto struct {
type UploadDto struct { type UploadDto struct {
Id uint `json:"-"` Id uint `json:"-"`
Code eru.UploadCode `json:"-"` Code eru.DocTypeCode `json:"-"`
File multipart.File `json:"-"` File multipart.File `json:"-"`
FileHeader *multipart.FileHeader `json:"-"` FileHeader *multipart.FileHeader `json:"-"`
Filename string `json:"-"` Filename string `json:"-"`
+4 -3
View File
@@ -3,6 +3,7 @@ package upload
import ( import (
"mime/multipart" "mime/multipart"
eru "simrs-vx/internal/domain/references/upload" eru "simrs-vx/internal/domain/references/upload"
// internal - domain - base-entities // internal - domain - base-entities
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
) )
@@ -10,7 +11,7 @@ import (
type CreateDto struct { type CreateDto struct {
EntityType_Code eru.EntityTypeCode `form:"entityType_code"` EntityType_Code eru.EntityTypeCode `form:"entityType_code"`
Ref_Id *uint `form:"ref_id"` Ref_Id *uint `form:"ref_id"`
Type_Code eru.UploadCode `form:"type_code"` Type_Code eru.DocTypeCode `form:"type_code"`
Name string `form:"name"` Name string `form:"name"`
Upload_Employee_Id *uint `form:"upload_employee_id"` Upload_Employee_Id *uint `form:"upload_employee_id"`
FilePath string `json:"-"` FilePath string `json:"-"`
@@ -31,7 +32,7 @@ type ReadListDto struct {
type FilterDto struct { type FilterDto struct {
EntityType_Code eru.EntityTypeCode `json:"entityType-code"` EntityType_Code eru.EntityTypeCode `json:"entityType-code"`
Ref_Id *uint `json:"ref-id"` Ref_Id *uint `json:"ref-id"`
Type_Code eru.UploadCode `json:"type-code"` Type_Code eru.DocTypeCode `json:"type-code"`
Name string `json:"name"` Name string `json:"name"`
FilePath *string `json:"filePath"` FilePath *string `json:"filePath"`
FileName *string `json:"fileName"` FileName *string `json:"fileName"`
@@ -61,7 +62,7 @@ type MetaDto struct {
type ResponseDto struct { type ResponseDto struct {
EntityType_Code eru.EntityTypeCode `json:"entityType_code"` EntityType_Code eru.EntityTypeCode `json:"entityType_code"`
Ref_Id *uint `json:"ref_id"` Ref_Id *uint `json:"ref_id"`
Type_Code eru.UploadCode `json:"type_code"` Type_Code eru.DocTypeCode `json:"type_code"`
Name string `json:"name"` Name string `json:"name"`
Upload_Employee_Id *uint `json:"upload_employee_id"` Upload_Employee_Id *uint `json:"upload_employee_id"`
FilePath string `json:"filePath"` FilePath string `json:"filePath"`
+18 -17
View File
@@ -3,40 +3,41 @@ package upload
import "fmt" import "fmt"
type ( type (
UploadCode string DocTypeCode string
EntityTypeCode string EntityTypeCode string
) )
const ( const (
UCPRN UploadCode = "person-resident-number" // Person Resident Number DTCPRN DocTypeCode = "person-resident-number" // Person Resident Number
UCPDL UploadCode = "person-driver-license" // Person Driver License DTCPDL DocTypeCode = "person-driver-license" // Person Driver License
UCPP UploadCode = "person-passport" // Person Passport DTCPP DocTypeCode = "person-passport" // Person Passport
UCPFC UploadCode = "person-family-card" // Person Family Card DTCPFC DocTypeCode = "person-family-card" // Person Family Card
UCMIR UploadCode = "mcu-item-result" // Mcu Item Result DTCMIR DocTypeCode = "mcu-item-result" // Mcu Item Result
UCEnPatient UploadCode = "encounter-patient" DTCEnPatient DocTypeCode = "encounter-patient"
UCEnSupport UploadCode = "encounter-support" DTCEnSupport DocTypeCode = "encounter-support"
UcEnOther UploadCode = "encounter-other" DTCEnOther DocTypeCode = "encounter-other"
UCSEP UploadCode = "vclaim-sep" // SEP DTCSEP DocTypeCode = "vclaim-sep" // SEP
UCSIPP UploadCode = "vclaim-sipp" // SIPP DTCSIPP DocTypeCode = "vclaim-sipp" // SIPP
DTCGC DocTypeCode = "general-consent"
ETCPerson EntityTypeCode = "person" ETCPerson EntityTypeCode = "person"
ETCEncounter EntityTypeCode = "encounter" ETCEncounter EntityTypeCode = "encounter"
ETCMCU EntityTypeCode = "mcu" ETCMCU EntityTypeCode = "mcu"
) )
var validUploadCodesByEntity = map[EntityTypeCode][]UploadCode{ var validUploadCodesByEntity = map[EntityTypeCode][]DocTypeCode{
ETCPerson: { ETCPerson: {
UCPRN, UCPDL, UCPP, UCPFC, DTCPRN, DTCPDL, DTCPP, DTCPFC,
}, },
ETCEncounter: { ETCEncounter: {
UCSEP, UCSIPP, UCEnPatient, UCEnSupport, UcEnOther, DTCSEP, DTCSIPP, DTCEnPatient, DTCEnSupport, DTCEnOther,
}, },
ETCMCU: { ETCMCU: {
UCMIR, DTCMIR,
}, },
} }
func IsValidUploadCode(entity EntityTypeCode, code UploadCode) (bool, string) { func IsValidUploadCode(entity EntityTypeCode, code DocTypeCode) (bool, string) {
allowedCodes, ok := validUploadCodesByEntity[entity] allowedCodes, ok := validUploadCodesByEntity[entity]
if !ok { if !ok {
return false, fmt.Sprintf("unknown entityType_code: %s", entity) return false, fmt.Sprintf("unknown entityType_code: %s", entity)
@@ -48,5 +49,5 @@ func IsValidUploadCode(entity EntityTypeCode, code UploadCode) (bool, string) {
} }
} }
return false, fmt.Sprintf("invalid upload_code '%s' for entityType_code '%s'", code, entity) return false, fmt.Sprintf("invalid doctype_code '%s' for entityType_code '%s'", code, entity)
} }
@@ -52,7 +52,7 @@ func (obj myBase) Create(w http.ResponseWriter, r *http.Request) {
dto := e.CreateDto{ dto := e.CreateDto{
EntityType_Code: eru.EntityTypeCode(r.FormValue("entityType_code")), EntityType_Code: eru.EntityTypeCode(r.FormValue("entityType_code")),
Ref_Id: refID, Ref_Id: refID,
Type_Code: eru.UploadCode(r.FormValue("type_code")), Type_Code: eru.DocTypeCode(r.FormValue("type_code")),
Name: r.FormValue("name"), Name: r.FormValue("name"),
Upload_Employee_Id: employeeId, Upload_Employee_Id: employeeId,
File: file, File: file,
@@ -106,22 +106,22 @@ func setPersonAttachment(input e.CreateDto, event *pl.Event, tx *gorm.DB) (*ep.P
var removeUrl string var removeUrl string
switch input.Type_Code { switch input.Type_Code {
case eru.UCPRN: case eru.DTCPRN:
if dataPerson.ResidentIdentityFileUrl != nil { if dataPerson.ResidentIdentityFileUrl != nil {
removeUrl = *dataPerson.ResidentIdentityFileUrl removeUrl = *dataPerson.ResidentIdentityFileUrl
} }
dataPerson.ResidentIdentityFileUrl = &input.FilePath dataPerson.ResidentIdentityFileUrl = &input.FilePath
case eru.UCPDL: case eru.DTCPDL:
if dataPerson.DrivingLicenseFileUrl != nil { if dataPerson.DrivingLicenseFileUrl != nil {
removeUrl = *dataPerson.DrivingLicenseFileUrl removeUrl = *dataPerson.DrivingLicenseFileUrl
} }
dataPerson.DrivingLicenseFileUrl = &input.FilePath dataPerson.DrivingLicenseFileUrl = &input.FilePath
case eru.UCPP: case eru.DTCPP:
if dataPerson.PassportFileUrl != nil { if dataPerson.PassportFileUrl != nil {
removeUrl = *dataPerson.PassportFileUrl removeUrl = *dataPerson.PassportFileUrl
} }
dataPerson.PassportFileUrl = &input.FilePath dataPerson.PassportFileUrl = &input.FilePath
case eru.UCPFC: case eru.DTCPFC:
if dataPerson.FamilyIdentityFileUrl != nil { if dataPerson.FamilyIdentityFileUrl != nil {
removeUrl = *dataPerson.FamilyIdentityFileUrl removeUrl = *dataPerson.FamilyIdentityFileUrl
} }
@@ -164,7 +164,7 @@ func setEncounterDocument(input e.CreateDto, event *pl.Event, tx *gorm.DB) (*ee.
Upload_Employee_Id: input.Upload_Employee_Id, Upload_Employee_Id: input.Upload_Employee_Id,
} }
if input.Type_Code == eru.UCSEP || input.Type_Code == eru.UCSIPP { if input.Type_Code == eru.DTCSEP || input.Type_Code == eru.DTCSIPP {
if len(dataUpload) > 0 { if len(dataUpload) > 0 {
data = dataUpload[0] data = dataUpload[0]
+7 -7
View File
@@ -11,15 +11,15 @@ import (
func getBucketForType(docType string) (string, error) { func getBucketForType(docType string) (string, error) {
switch strings.ToLower(docType) { switch strings.ToLower(docType) {
case "resident", "resident-number", "ktp": case "resident", "resident-number", "ktp":
return string(ere.UCPRN), nil return string(ere.DTCPRN), nil
case "driver-license", "sim", "license": case "driver-license", "sim", "license":
return string(ere.UCPDL), nil return string(ere.DTCPDL), nil
case "passport", "paspor": case "passport", "paspor":
return string(ere.UCPP), nil return string(ere.DTCPP), nil
case "family-card", "kk", "family": case "family-card", "kk", "family":
return string(ere.UCPFC), nil return string(ere.DTCPFC), nil
case "mcu", "medical", "mcu-result": case "mcu", "medical", "mcu-result":
return string(ere.UCMIR), nil return string(ere.DTCMIR), nil
default: default:
return "", fmt.Errorf("unknown document type: %s", docType) return "", fmt.Errorf("unknown document type: %s", docType)
} }
@@ -28,9 +28,9 @@ func getBucketForType(docType string) (string, error) {
// getValidFileTypesForBucket returns allowed file types for each bucket // getValidFileTypesForBucket returns allowed file types for each bucket
func getValidFileTypesForBucket(bucketName string) []string { func getValidFileTypesForBucket(bucketName string) []string {
switch bucketName { switch bucketName {
case string(ere.UCPRN), string(ere.UCPDL), string(ere.UCPP), string(ere.UCPFC): case string(ere.DTCPRN), string(ere.DTCPDL), string(ere.DTCPP), string(ere.DTCPFC):
return []string{".jpg", ".jpeg", ".png", ".pdf", ".gif"} return []string{".jpg", ".jpeg", ".png", ".pdf", ".gif"}
case string(ere.UCMIR): case string(ere.DTCMIR):
return []string{".jpg", ".jpeg", ".png", ".pdf", ".gif", ".doc", ".docx", ".xls", ".xlsx"} return []string{".jpg", ".jpeg", ".png", ".pdf", ".gif", ".doc", ".docx", ".xls", ".xlsx"}
default: default:
return []string{".jpg", ".jpeg", ".png", ".pdf"} return []string{".jpg", ".jpeg", ".png", ".pdf"}