From cebb3214cfcac46f61a7f6c1b90fa816d92f5165 Mon Sep 17 00:00:00 2001 From: quang1472001 Date: Thu, 6 Oct 2022 10:55:49 +0700 Subject: [PATCH] update location add slug & DistinctWithField --- client/location.go | 19 ++++++++++++++ model/location_request.go | 18 ++++++++++--- subject/location.go | 54 ++++++++++++++++++++------------------- 3 files changed, 62 insertions(+), 29 deletions(-) diff --git a/client/location.go b/client/location.go index 76f9a3f..d8b3380 100644 --- a/client/location.go +++ b/client/location.go @@ -293,3 +293,22 @@ func (l Location) CountWardByCondition(p model.WardRequestCondition) (int64, err } return r.Data, nil } + +// DistinctWithField ... +func (l Location) DistinctWithField(p model.ProvinceDistinctWithField) ([]interface{}, error) { + msg, err := natsio.GetServer().Request(subject.Location.ProvinceDistinctWithField, toBytes(p)) + if err != nil { + return nil, err + } + var r struct { + Data []interface{} `json:"data"` + Error string `json:"error"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + return r.Data, nil +} diff --git a/model/location_request.go b/model/location_request.go index 98096ff..5816b52 100644 --- a/model/location_request.go +++ b/model/location_request.go @@ -15,9 +15,10 @@ type ( // ProvinceRequestCondition ... ProvinceRequestCondition struct { - Code int `json:"code"` - Codes []int `json:"codes"` - Slug string `json:"slug"` + Code int `json:"code"` + Codes []int `json:"codes"` + Slug string `json:"slug"` + Slugs []string `json:"slugs"` } // DistrictRequestPayload ... @@ -31,6 +32,7 @@ type ( Codes []int `json:"codes"` ProvinceCode int `json:"provinceCode"` Slug string `json:"slug"` + ProvinceSlug string `json:"provinceSlug"` } // WardRequestPayload ... @@ -45,5 +47,15 @@ type ( DistrictCode int `json:"districtCode"` ProvinceCode int `json:"provinceCode"` Slug string `json:"slug"` + DistrictSlug string `json:"districtSlug"` + ProvinceSlug string `json:"provinceSlug"` + } + + // ProvinceDistinctWithField ... + ProvinceDistinctWithField struct { + Conditions struct { + Region string `json:"region"` + } `json:"conditions"` + Field string `json:"filed"` } ) diff --git a/subject/location.go b/subject/location.go index 40a21e4..c625ca4 100644 --- a/subject/location.go +++ b/subject/location.go @@ -7,31 +7,33 @@ func getLocationValue(val string) string { } var Location = struct { - GetLocationByCode string - GetProvincesByCodes string - GetDistrictsByCodes string - GetWardsByCodes string - GetProvinceByCondition string - GetProvincesByCondition string - GetDistrictByCondition string - GetDistrictsByCondition string - GetWardByCondition string - GetWardsByCondition string - CountProvinceByCondition string - CountDistrictByCondition string - CountWardByCondition string + GetLocationByCode string + GetProvincesByCodes string + GetDistrictsByCodes string + GetWardsByCodes string + GetProvinceByCondition string + GetProvincesByCondition string + GetDistrictByCondition string + GetDistrictsByCondition string + GetWardByCondition string + GetWardsByCondition string + CountProvinceByCondition string + CountDistrictByCondition string + CountWardByCondition string + ProvinceDistinctWithField string }{ - GetLocationByCode: getLocationValue("get_location_warehouse"), - GetProvincesByCodes: getLocationValue("get_provinces_by_codes"), - GetDistrictsByCodes: getLocationValue("get_districts_by_codes"), - GetWardsByCodes: getLocationValue("get_wards_by_codes"), - GetProvinceByCondition: getLocationValue("get_province_by_condition"), - GetProvincesByCondition: getLocationValue("get_provinces_by_condition"), - GetDistrictByCondition: getLocationValue("get_district_by_condition"), - GetDistrictsByCondition: getLocationValue("get_districts_byCondition"), - GetWardByCondition: getLocationValue("get_ward_by_condition"), - GetWardsByCondition: getLocationValue("get_wards_by_condition"), - CountProvinceByCondition: getLocationValue("count_province_by_condition"), - CountDistrictByCondition: getLocationValue("count_district_by_condition"), - CountWardByCondition: getLocationValue("count_ward_by_condition"), + GetLocationByCode: getLocationValue("get_location_warehouse"), + GetProvincesByCodes: getLocationValue("get_provinces_by_codes"), + GetDistrictsByCodes: getLocationValue("get_districts_by_codes"), + GetWardsByCodes: getLocationValue("get_wards_by_codes"), + GetProvinceByCondition: getLocationValue("get_province_by_condition"), + GetProvincesByCondition: getLocationValue("get_provinces_by_condition"), + GetDistrictByCondition: getLocationValue("get_district_by_condition"), + GetDistrictsByCondition: getLocationValue("get_districts_byCondition"), + GetWardByCondition: getLocationValue("get_ward_by_condition"), + GetWardsByCondition: getLocationValue("get_wards_by_condition"), + CountProvinceByCondition: getLocationValue("count_province_by_condition"), + CountDistrictByCondition: getLocationValue("count_district_by_condition"), + CountWardByCondition: getLocationValue("count_ward_by_condition"), + ProvinceDistinctWithField: getLocationValue("province_distinct_with_field"), }