Merge pull request #173 from dikstub-rssa/feat/sync-setting-vanili

update entity encounter and apply sync from old source
This commit is contained in:
vaniliacahya
2025-12-01 12:36:08 +07:00
committed by GitHub
9 changed files with 141 additions and 129 deletions
+33 -22
View File
@@ -34,28 +34,39 @@ import (
) )
type CreateDto struct { type CreateDto struct {
Patient_Id *uint `json:"patient_id"` Patient_Id *uint `json:"patient_id"`
RegisteredAt *time.Time `json:"registeredAt"` RegisteredAt *time.Time `json:"registeredAt"`
Class_Code ere.EncounterClassCode `json:"class_code" validate:"maxLength=10"` Class_Code ere.EncounterClassCode `json:"class_code" validate:"maxLength=10"`
SubClass_Code *string `json:"subClass_code" validate:"maxLength=10"` // for sub SubClass_Code *string `json:"subClass_code" validate:"maxLength=10"` // for sub
Infra_Code *string `json:"infra_code"` // for inpatient Infra_Code *string `json:"infra_code"` // for inpatient
Unit_Code *string `json:"unit_code"` Unit_Code *string `json:"unit_code"`
Specialist_Code *string `json:"specialist_code"` Specialist_Code *string `json:"specialist_code"`
Subspecialist_Code *string `json:"subspecialist_code"` Subspecialist_Code *string `json:"subspecialist_code"`
VisitDate time.Time `json:"visitDate"` VisitDate time.Time `json:"visitDate"`
PaymentMethod_Code ere.AllPaymentMethodCode `json:"paymentMethod_code" gorm:"size:10"` StartedAt *time.Time `json:"startedAt"`
InsuranceCompany_Code *string `json:"insuranceCompany_code"` FinishedAt *time.Time `json:"finishedAt"`
Member_Number *string `json:"member_number" validate:"maxLength=20"` PaymentMethod_Code ere.AllPaymentMethodCode `json:"paymentMethod_code" gorm:"size:10"`
Ref_Number *string `json:"ref_number" validate:"maxLength=20"` InsuranceCompany_Code *string `json:"insuranceCompany_code"`
Trx_Number *string `json:"trx_number" validate:"maxLength=20"` Member_Number *string `json:"member_number" validate:"maxLength=20"`
Appointment_Doctor_Code *string `json:"appointment_doctor_code"` RefTypeCode ere.RefTypeCode `json:"refTypeCode"`
Adm_Employee_Id *uint `json:"-"` Ref_Number *string `json:"ref_number" validate:"maxLength=20"`
Responsible_Doctor_Code *string `json:"responsible_doctor_code"` Trx_Number *string `json:"trx_number" validate:"maxLength=20"`
RefSource_Name *string `json:"refSource_name" validate:"maxLength=100"` Appointment_Doctor_Code *string `json:"appointment_doctor_code"`
Appointment_Id *uint `json:"appointment_id"` Adm_Employee_Id *uint `json:"-"`
RefTypeCode ere.RefTypeCode `json:"refTypeCode"` Responsible_Doctor_Code *string `json:"responsible_doctor_code"`
NewStatus bool `json:"newStatus"` Responsible_Nurse_Code *string `json:"responsible_nurse_code"`
VclaimReference *TRujukan `json:"vclaimReference"` Discharge_Method_Code *ere.DischargeMethodCode `json:"discharge_method_code" gorm:"size:16"`
RefSource_Name *string `json:"refSource_name" validate:"maxLength=100"`
Appointment_Id *uint `json:"appointment_id"`
EarlyEducation *string `json:"earlyEducation"`
MedicalDischargeEducation *string `json:"medicalDischargeEducation"`
AdmDischargeEducation *string `json:"admDischargeEducation"`
DischargeReason *string `json:"dischargeReason"`
Status_Code erc.DataStatusCode `json:"status_code" gorm:"size:10"`
Discharge_Date *time.Time `json:"discharge_date"`
DeathCause *edc.DeathCause `json:"deathCause"`
NewStatus bool `json:"newStatus"`
VclaimReference *TRujukan `json:"vclaimReference"`
Id uint `json:"-"` Id uint `json:"-"`
RecentEncounterAdm *Encounter `json:"-"` // if subClass_Code is rehab RecentEncounterAdm *Encounter `json:"-"` // if subClass_Code is rehab
@@ -60,6 +60,7 @@ type UpdateDto struct {
type DeleteDto struct { type DeleteDto struct {
Id uint `json:"id"` Id uint `json:"id"`
pa.AuthInfo
} }
type SearchDto struct { type SearchDto struct {
@@ -63,7 +63,15 @@ func (obj myBase) Update(w http.ResponseWriter, r *http.Request) {
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res { if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return return
} }
authInfo, err := pa.GetAuthInfo(r)
if err != nil {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": err.Error()}, nil)
}
dto.Id = uint(id) dto.Id = uint(id)
dto.AuthInfo = *authInfo
res, err := u.Update(dto) res, err := u.Update(dto)
rw.DataResponse(w, res, err) rw.DataResponse(w, res, err)
} }
@@ -75,7 +83,15 @@ func (obj myBase) Delete(w http.ResponseWriter, r *http.Request) {
} }
dto := e.DeleteDto{} dto := e.DeleteDto{}
authInfo, err := pa.GetAuthInfo(r)
if err != nil {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": err.Error()}, nil)
}
dto.Id = uint(id) dto.Id = uint(id)
dto.AuthInfo = *authInfo
res, err := u.Delete(dto) res, err := u.Delete(dto)
rw.DataResponse(w, res, err) rw.DataResponse(w, res, err)
} }
@@ -94,7 +94,7 @@ func Create(input e.CreateDto) (*d.Data, error) {
input.NewStatus, err = identifyPatientStatus(input) input.NewStatus, err = identifyPatientStatus(input)
input.Adm_Employee_Id = input.AuthInfo.Employee_Id input.Adm_Employee_Id = input.AuthInfo.Employee_Id
mwRunner := newMiddlewareRunner(&event) mwRunner := newMiddlewareRunner(&event, input.Sync)
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
// create encounter // create encounter
@@ -158,7 +158,6 @@ func Create(input e.CreateDto) (*d.Data, error) {
} }
func ReadList(input e.ReadListDto) (*d.Data, error) { func ReadList(input e.ReadListDto) (*d.Data, error) {
var data *e.Encounter
var dataList []e.Encounter var dataList []e.Encounter
var metaList *e.MetaDto var metaList *e.MetaDto
var err error var err error
@@ -172,23 +171,9 @@ func ReadList(input e.ReadListDto) (*d.Data, error) {
pl.SetLogInfo(&event, input, "started", "readList") pl.SetLogInfo(&event, input, "started", "readList")
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
mwRunner := newMiddlewareRunner(&event)
mwRunner.setMwType(pu.MWTPre)
// Run pre-middleware
if err := mwRunner.RunReadListMiddleware(readListPreMw, &input, data); err != nil {
return err
}
if dataList, metaList, err = ReadListData(input, &event, tx); err != nil { if dataList, metaList, err = ReadListData(input, &event, tx); err != nil {
return err return err
} }
mwRunner.setMwType(pu.MWTPost)
// Run post-middleware
if err := mwRunner.RunReadListMiddleware(readListPostMw, &input, data); err != nil {
return err
}
return nil return nil
}) })
@@ -223,23 +208,9 @@ func ReadDetail(input e.ReadDetailDto) (*d.Data, error) {
pl.SetLogInfo(&event, input, "started", "readDetail") pl.SetLogInfo(&event, input, "started", "readDetail")
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
mwRunner := newMiddlewareRunner(&event)
mwRunner.setMwType(pu.MWTPre)
// Run pre-middleware
if err := mwRunner.RunReadDetailMiddleware(readDetailPreMw, &input, data); err != nil {
return err
}
if data, err = ReadDetailData(input, &event, tx); err != nil { if data, err = ReadDetailData(input, &event, tx); err != nil {
return err return err
} }
mwRunner.setMwType(pu.MWTPost)
// Run post-middleware
if err := mwRunner.RunReadDetailMiddleware(readDetailPostMw, &input, data); err != nil {
return err
}
return nil return nil
}) })
@@ -277,7 +248,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
} }
input.Adm_Employee_Id = input.AuthInfo.Employee_Id input.Adm_Employee_Id = input.AuthInfo.Employee_Id
mwRunner := newMiddlewareRunner(&event) mwRunner := newMiddlewareRunner(&event, input.Sync)
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail") pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
@@ -352,7 +323,7 @@ func Delete(input e.DeleteDto) (*d.Data, error) {
return nil, err return nil, err
} }
mwRunner := newMiddlewareRunner(&event) mwRunner := newMiddlewareRunner(&event, input.Sync)
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail") pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
@@ -436,7 +407,7 @@ func CheckOut(input e.DischargeDto) (*d.Data, error) {
return nil, err return nil, err
} }
mwRunner := newMiddlewareRunner(&event) mwRunner := newMiddlewareRunner(&event, input.Sync)
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail") pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
@@ -561,7 +532,7 @@ func UpdateStatusCode(input e.UpdateStatusDto) (*d.Data, error) {
return nil, err return nil, err
} }
mwRunner := newMiddlewareRunner(&event) mwRunner := newMiddlewareRunner(&event, input.Sync)
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail") pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
@@ -664,7 +635,7 @@ func CheckIn(input e.CheckinDto) (*d.Data, error) {
input.StartedAt = &now input.StartedAt = &now
} }
mwRunner := newMiddlewareRunner(&event) mwRunner := newMiddlewareRunner(&event, input.Sync)
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail") pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
@@ -767,7 +738,7 @@ func RequestSwitchUnit(input e.SwitchUnitDto) (*d.Data, error) {
} }
input.Src_Nurse_Code = input.AuthInfo.Nurse_Code input.Src_Nurse_Code = input.AuthInfo.Nurse_Code
mwRunner := newMiddlewareRunner(&event) mwRunner := newMiddlewareRunner(&event, input.Sync)
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail") pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
@@ -861,7 +832,7 @@ func ApproveSwitchUnit(input e.ApproveCancelUnitDto) (*d.Data, error) {
return nil, err return nil, err
} }
mwRunner := newMiddlewareRunner(&event) mwRunner := newMiddlewareRunner(&event, input.Sync)
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail") pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
@@ -976,7 +947,7 @@ func CancelSwitchUnit(input e.ApproveCancelUnitDto) (*d.Data, error) {
return nil, err return nil, err
} }
mwRunner := newMiddlewareRunner(&event) mwRunner := newMiddlewareRunner(&event, input.Sync)
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail") pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
@@ -65,44 +65,71 @@ import (
us "simrs-vx/internal/use-case/main-use-case/soapi" us "simrs-vx/internal/use-case/main-use-case/soapi"
) )
func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Encounter) { func setDataCreate(input *e.CreateDto, data *e.Encounter) {
var inputSrc *e.CreateDto data.Patient_Id = input.Patient_Id
if inputT, ok := any(input).(*e.CreateDto); ok { data.RegisteredAt = input.RegisteredAt
inputSrc = inputT data.Class_Code = input.Class_Code
data.Status_Code = erc.DSCNew data.Unit_Code = input.Unit_Code
} else { data.Specialist_Code = input.Specialist_Code
inputTemp := any(input).(*e.UpdateDto) data.Subspecialist_Code = input.Subspecialist_Code
inputSrc = &inputTemp.CreateDto data.VisitDate = input.VisitDate
} data.PaymentMethod_Code = input.PaymentMethod_Code
data.InsuranceCompany_Code = input.InsuranceCompany_Code
data.Patient_Id = inputSrc.Patient_Id data.Member_Number = input.Member_Number
data.RegisteredAt = inputSrc.RegisteredAt data.RefType_Code = &input.RefTypeCode
data.Class_Code = inputSrc.Class_Code data.Ref_Number = input.Ref_Number
data.Unit_Code = inputSrc.Unit_Code data.Trx_Number = input.Trx_Number
data.Specialist_Code = inputSrc.Specialist_Code data.Appointment_Doctor_Code = input.Appointment_Doctor_Code
data.Subspecialist_Code = inputSrc.Subspecialist_Code data.Adm_Employee_Id = input.Adm_Employee_Id
data.VisitDate = inputSrc.VisitDate data.RefSource_Name = input.RefSource_Name
data.PaymentMethod_Code = inputSrc.PaymentMethod_Code data.Appointment_Id = input.Appointment_Id
data.InsuranceCompany_Code = inputSrc.InsuranceCompany_Code data.Status_Code = erc.DSCNew
data.Member_Number = inputSrc.Member_Number data.NewStatus = input.NewStatus
data.Ref_Number = inputSrc.Ref_Number
data.Trx_Number = inputSrc.Trx_Number
data.Appointment_Doctor_Code = inputSrc.Appointment_Doctor_Code
data.Adm_Employee_Id = inputSrc.Adm_Employee_Id
data.Responsible_Doctor_Code = inputSrc.Responsible_Doctor_Code
data.RefSource_Name = inputSrc.RefSource_Name
data.Appointment_Id = inputSrc.Appointment_Id
data.RefType_Code = &inputSrc.RefTypeCode
data.NewStatus = inputSrc.NewStatus
} }
func setDataUpdate(src e.UpdateDto, dst *e.Encounter) { func setDataUpdate(src e.UpdateDto, dst *e.Encounter) {
dst.Appointment_Doctor_Code = src.Appointment_Doctor_Code
dst.Responsible_Doctor_Code = src.Responsible_Doctor_Code
dst.Unit_Code = src.Unit_Code dst.Unit_Code = src.Unit_Code
dst.Specialist_Code = src.Specialist_Code dst.Specialist_Code = src.Specialist_Code
dst.Subspecialist_Code = src.Subspecialist_Code dst.Subspecialist_Code = src.Subspecialist_Code
dst.VisitDate = src.VisitDate dst.VisitDate = src.VisitDate
dst.Appointment_Doctor_Code = src.Appointment_Doctor_Code
dst.Adm_Employee_Id = src.Adm_Employee_Id
dst.Appointment_Id = src.Appointment_Id
dst.RefSource_Name = src.RefSource_Name
dst.Trx_Number = src.Trx_Number
dst.Ref_Number = src.Ref_Number
dst.Member_Number = src.Member_Number
}
func setDataUpdateFromSource(input *e.UpdateDto, data *e.Encounter) {
data.Patient_Id = input.Patient_Id
data.RegisteredAt = input.RegisteredAt
data.Unit_Code = input.Unit_Code
data.Specialist_Code = input.Specialist_Code
data.Subspecialist_Code = input.Subspecialist_Code
data.VisitDate = input.VisitDate
data.StartedAt = input.StartedAt
data.FinishedAt = input.FinishedAt
data.PaymentMethod_Code = input.PaymentMethod_Code
data.InsuranceCompany_Code = input.InsuranceCompany_Code
data.Member_Number = input.Member_Number
data.RefType_Code = &input.RefTypeCode
data.Ref_Number = input.Ref_Number
data.Trx_Number = input.Trx_Number
data.Appointment_Doctor_Code = input.Appointment_Doctor_Code
data.Adm_Employee_Id = input.Adm_Employee_Id
data.Responsible_Doctor_Code = input.Responsible_Doctor_Code
data.Discharge_Method_Code = input.Discharge_Method_Code
data.RefSource_Name = input.RefSource_Name
data.Appointment_Id = input.Appointment_Id
data.EarlyEducation = input.EarlyEducation
data.MedicalDischargeEducation = input.MedicalDischargeEducation
data.AdmDischargeEducation = input.AdmDischargeEducation
data.DischargeReason = input.DischargeReason
data.Status_Code = input.Status_Code
data.Discharge_Date = input.Discharge_Date
data.NewStatus = input.NewStatus
data.Responsible_Nurse_Code = input.Responsible_Nurse_Code
} }
func setDataDischarge(src e.DischargeDto, dst *e.Encounter) { func setDataDischarge(src e.DischargeDto, dst *e.Encounter) {
@@ -25,7 +25,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Encount
pl.SetLogInfo(event, nil, "started", "DBCreate") pl.SetLogInfo(event, nil, "started", "DBCreate")
data := e.Encounter{} data := e.Encounter{}
setData(&input, &data) setDataCreate(&input, &data)
var tx *gorm.DB var tx *gorm.DB
if len(dbx) > 0 { if len(dbx) > 0 {
@@ -109,7 +109,12 @@ func ReadDetailData(input e.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (*e
func UpdateData(input e.UpdateDto, data *e.Encounter, event *pl.Event, dbx ...*gorm.DB) error { func UpdateData(input e.UpdateDto, data *e.Encounter, event *pl.Event, dbx ...*gorm.DB) error {
pl.SetLogInfo(event, data, "started", "DBUpdate") pl.SetLogInfo(event, data, "started", "DBUpdate")
setDataUpdate(input, data)
if input.Sync {
setDataUpdateFromSource(&input, data)
} else {
setDataUpdate(input, data)
}
var tx *gorm.DB var tx *gorm.DB
if len(dbx) > 0 { if len(dbx) > 0 {
@@ -20,10 +20,15 @@ type middlewareRunner struct {
} }
// NewMiddlewareExecutor creates a new middleware executor // NewMiddlewareExecutor creates a new middleware executor
func newMiddlewareRunner(event *pl.Event) *middlewareRunner { func newMiddlewareRunner(event *pl.Event, syncFromOldSource bool) *middlewareRunner {
activateSync := sync.O.Enable
if syncFromOldSource {
activateSync = false
}
return &middlewareRunner{ return &middlewareRunner{
Event: event, Event: event,
SyncOn: sync.O.Enable, SyncOn: activateSync,
} }
} }
@@ -37,7 +37,7 @@ func Create(input e.CreateDto) (*d.Data, error) {
// Start log // Start log
pl.SetLogInfo(&event, input, "started", "create") pl.SetLogInfo(&event, input, "started", "create")
mwRunner := newMiddlewareRunner(&event) mwRunner := newMiddlewareRunner(&event, input.Sync)
// check if user has employee position // check if user has employee position
if !input.AuthInfo.HasEmployeePosition() { if !input.AuthInfo.HasEmployeePosition() {
@@ -143,7 +143,6 @@ func Create(input e.CreateDto) (*d.Data, error) {
} }
func ReadList(input e.ReadListDto) (*d.Data, error) { func ReadList(input e.ReadListDto) (*d.Data, error) {
var data *e.Patient
var dataList []e.Patient var dataList []e.Patient
var metaList *e.MetaDto var metaList *e.MetaDto
var err error var err error
@@ -157,23 +156,9 @@ func ReadList(input e.ReadListDto) (*d.Data, error) {
pl.SetLogInfo(&event, input, "started", "readList") pl.SetLogInfo(&event, input, "started", "readList")
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
mwRunner := newMiddlewareRunner(&event)
mwRunner.setMwType(pu.MWTPre)
// Run pre-middleware
if err := mwRunner.RunReadListMiddleware(readListPreMw, &input, data); err != nil {
return err
}
if dataList, metaList, err = ReadListData(input, &event, tx); err != nil { if dataList, metaList, err = ReadListData(input, &event, tx); err != nil {
return err return err
} }
mwRunner.setMwType(pu.MWTPost)
// Run post-middleware
if err := mwRunner.RunReadListMiddleware(readListPostMw, &input, data); err != nil {
return err
}
return nil return nil
}) })
@@ -208,23 +193,9 @@ func ReadDetail(input e.ReadDetailDto) (*d.Data, error) {
pl.SetLogInfo(&event, input, "started", "readDetail") pl.SetLogInfo(&event, input, "started", "readDetail")
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
mwRunner := newMiddlewareRunner(&event)
mwRunner.setMwType(pu.MWTPre)
// Run pre-middleware
if err := mwRunner.RunReadDetailMiddleware(readDetailPreMw, &input, data); err != nil {
return err
}
if data, err = ReadDetailData(input, &event, tx); err != nil { if data, err = ReadDetailData(input, &event, tx); err != nil {
return err return err
} }
mwRunner.setMwType(pu.MWTPost)
// Run post-middleware
if err := mwRunner.RunReadDetailMiddleware(readDetailPostMw, &input, data); err != nil {
return err
}
return nil return nil
}) })
@@ -254,7 +225,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
// Start log // Start log
pl.SetLogInfo(&event, input, "started", "update") pl.SetLogInfo(&event, input, "started", "update")
mwRunner := newMiddlewareRunner(&event) mwRunner := newMiddlewareRunner(&event, input.Sync)
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail") pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
@@ -343,7 +314,7 @@ func Delete(input e.DeleteDto) (*d.Data, error) {
// Start log // Start log
pl.SetLogInfo(&event, input, "started", "delete") pl.SetLogInfo(&event, input, "started", "delete")
mwRunner := newMiddlewareRunner(&event) mwRunner := newMiddlewareRunner(&event, input.Sync)
err = dg.I.Transaction(func(tx *gorm.DB) error { err = dg.I.Transaction(func(tx *gorm.DB) error {
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail") pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
@@ -20,10 +20,15 @@ type middlewareRunner struct {
} }
// NewMiddlewareExecutor creates a new middleware executor // NewMiddlewareExecutor creates a new middleware executor
func newMiddlewareRunner(event *pl.Event) *middlewareRunner { func newMiddlewareRunner(event *pl.Event, syncFromOldSource bool) *middlewareRunner {
activateSync := sync.O.Enable
if syncFromOldSource {
activateSync = false
}
return &middlewareRunner{ return &middlewareRunner{
Event: event, Event: event,
SyncOn: sync.O.Enable, SyncOn: activateSync,
} }
} }