Develop #22
|
@ -17,6 +17,7 @@ func GetLocation() Location {
|
||||||
return Location{}
|
return Location{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetLocationByCode ...
|
||||||
func (l Location) GetLocationByCode(payload model.LocationRequestPayload) (*model.ResponseLocationAddress, error) {
|
func (l Location) GetLocationByCode(payload model.LocationRequestPayload) (*model.ResponseLocationAddress, error) {
|
||||||
msg, err := natsio.GetServer().Request(subject.Location.GetLocationByCode, toBytes(payload))
|
msg, err := natsio.GetServer().Request(subject.Location.GetLocationByCode, toBytes(payload))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -36,3 +37,70 @@ func (l Location) GetLocationByCode(payload model.LocationRequestPayload) (*mode
|
||||||
}
|
}
|
||||||
return r.Data, nil
|
return r.Data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetProvincesByCodes ... ...
|
||||||
|
func (l Location) GetProvincesByCodes(p model.ProvinceRequestPayload) (*model.LocationProvinceResponse, error) {
|
||||||
|
msg, err := natsio.GetServer().Request(subject.Location.GetProvincesByCodes, toBytes(p))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var r struct {
|
||||||
|
Data *model.LocationProvinceResponse `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
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetDistrictsByCodes ...
|
||||||
|
func (l Location) GetDistrictsByCodes(p model.DistrictRequestPayload) (*model.LocationDistrictResponse, error) {
|
||||||
|
msg, err := natsio.GetServer().Request(subject.Location.GetDistrictsByCodes, toBytes(p))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
var r struct {
|
||||||
|
Data *model.LocationDistrictResponse `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
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetWardsByCodes ...
|
||||||
|
func (l Location) GetWardsByCodes(p model.WardRequestPayload) (*model.LocationWardResponse, error) {
|
||||||
|
msg, err := natsio.GetServer().Request(subject.Location.GetWardsByCodes, toBytes(p))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var r struct {
|
||||||
|
Data *model.LocationWardResponse `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
|
||||||
|
}
|
||||||
|
|
|
@ -6,3 +6,18 @@ type LocationRequestPayload struct {
|
||||||
District int `json:"district"`
|
District int `json:"district"`
|
||||||
Ward int `json:"ward"`
|
Ward int `json:"ward"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ProvinceRequestPayload ...
|
||||||
|
type ProvinceRequestPayload struct {
|
||||||
|
Codes []int `json:"codes"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// DistrictRequestPayload ...
|
||||||
|
type DistrictRequestPayload struct {
|
||||||
|
Codes []int `json:"codes"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// WardRequestPayload ...
|
||||||
|
type WardRequestPayload struct {
|
||||||
|
Codes []int `json:"codes"`
|
||||||
|
}
|
||||||
|
|
|
@ -26,3 +26,18 @@ type LocationWard struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Code int `json:"code"`
|
Code int `json:"code"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LocationProvinceResponse ...
|
||||||
|
type LocationProvinceResponse struct {
|
||||||
|
Provinces []LocationProvince `json:"provinces"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// LocationDistrictResponse ...
|
||||||
|
type LocationDistrictResponse struct {
|
||||||
|
Districts []LocationDistrict `json:"districts"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// LocationWardResponse ...
|
||||||
|
type LocationWardResponse struct {
|
||||||
|
Wards []LocationWard `json:"wards"`
|
||||||
|
}
|
||||||
|
|
|
@ -7,7 +7,13 @@ func getLocationValue(val string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
var Location = struct {
|
var Location = struct {
|
||||||
GetLocationByCode string
|
GetLocationByCode string
|
||||||
|
GetProvincesByCodes string
|
||||||
|
GetDistrictsByCodes string
|
||||||
|
GetWardsByCodes string
|
||||||
}{
|
}{
|
||||||
GetLocationByCode: getLocationValue("get_location_warehouse"),
|
GetLocationByCode: getLocationValue("get_location_warehouse"),
|
||||||
|
GetProvincesByCodes: getLocationValue("get_provinces_by_codes"),
|
||||||
|
GetDistrictsByCodes: getLocationValue("get_districts_by_codes"),
|
||||||
|
GetWardsByCodes: getLocationValue("get_wards_by_codes"),
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue