mergeDev/campaign #73
			
				
			
		
		
		
	| 
						 | 
				
			
			@ -104,3 +104,211 @@ func (l Location) GetWardsByCodes(p model.WardRequestPayload) (*model.LocationWa
 | 
			
		|||
 | 
			
		||||
	return r.Data, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetProvinceByCondition ...
 | 
			
		||||
func (l Location) GetProvinceByCondition(p model.RequestCondition) (*model.LocationProvinceDetailResponse, error) {
 | 
			
		||||
	msg, err := natsio.GetServer().Request(subject.Location.GetProvinceByCondition, toBytes(p))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var r struct {
 | 
			
		||||
		Data  *model.LocationProvinceDetailResponse `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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetProvincesByCondition ...
 | 
			
		||||
func (l Location) GetProvincesByCondition(p model.RequestCondition) ([]*model.LocationProvinceDetailResponse, error) {
 | 
			
		||||
	msg, err := natsio.GetServer().Request(subject.Location.GetProvincesByCondition, toBytes(p))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var r struct {
 | 
			
		||||
		Data  []*model.LocationProvinceDetailResponse `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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetDistrictByCondition ...
 | 
			
		||||
func (l Location) GetDistrictByCondition(p model.RequestCondition) (*model.LocationDistrictDetailResponse, error) {
 | 
			
		||||
	msg, err := natsio.GetServer().Request(subject.Location.GetDistrictByCondition, toBytes(p))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var r struct {
 | 
			
		||||
		Data  *model.LocationDistrictDetailResponse `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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetDistrictsByCondition ...
 | 
			
		||||
func (l Location) GetDistrictsByCondition(p model.RequestCondition) ([]*model.LocationDistrictDetailResponse, error) {
 | 
			
		||||
	msg, err := natsio.GetServer().Request(subject.Location.GetDistrictsByCondition, toBytes(p))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var r struct {
 | 
			
		||||
		Data  []*model.LocationDistrictDetailResponse `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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetWardByCondition ...
 | 
			
		||||
func (l Location) GetWardByCondition(p model.RequestCondition) (*model.LocationWardDetailResponse, error) {
 | 
			
		||||
	msg, err := natsio.GetServer().Request(subject.Location.GetWardByCondition, toBytes(p))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var r struct {
 | 
			
		||||
		Data  *model.LocationWardDetailResponse `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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetWardsByCondition ...
 | 
			
		||||
func (l Location) GetWardsByCondition(p model.RequestCondition) ([]*model.LocationWardDetailResponse, error) {
 | 
			
		||||
	msg, err := natsio.GetServer().Request(subject.Location.GetWardsByCondition, toBytes(p))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var r struct {
 | 
			
		||||
		Data  []*model.LocationWardDetailResponse `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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CountProvinceByCondition ...
 | 
			
		||||
func (l Location) CountProvinceByCondition(p model.RequestCondition) (int64, error) {
 | 
			
		||||
	msg, err := natsio.GetServer().Request(subject.Location.CountProvinceByCondition, toBytes(p))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return 0, err
 | 
			
		||||
	}
 | 
			
		||||
	var r struct {
 | 
			
		||||
		Data  int64  `json:"data"`
 | 
			
		||||
		Error string `json:"error"`
 | 
			
		||||
	}
 | 
			
		||||
	if err = json.Unmarshal(msg.Data, &r); err != nil {
 | 
			
		||||
		return 0, err
 | 
			
		||||
	}
 | 
			
		||||
	if r.Error != "" {
 | 
			
		||||
		return 0, errors.New(r.Error)
 | 
			
		||||
	}
 | 
			
		||||
	return r.Data, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CountDistrictByCondition ...
 | 
			
		||||
func (l Location) CountDistrictByCondition(p model.RequestCondition) (int64, error) {
 | 
			
		||||
	msg, err := natsio.GetServer().Request(subject.Location.CountDistrictByCondition, toBytes(p))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return 0, err
 | 
			
		||||
	}
 | 
			
		||||
	var r struct {
 | 
			
		||||
		Data  int64  `json:"data"`
 | 
			
		||||
		Error string `json:"error"`
 | 
			
		||||
	}
 | 
			
		||||
	if err = json.Unmarshal(msg.Data, &r); err != nil {
 | 
			
		||||
		return 0, err
 | 
			
		||||
	}
 | 
			
		||||
	if r.Error != "" {
 | 
			
		||||
		return 0, errors.New(r.Error)
 | 
			
		||||
	}
 | 
			
		||||
	return r.Data, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CountWardByCondition ...
 | 
			
		||||
func (l Location) CountWardByCondition(p model.RequestCondition) (int64, error) {
 | 
			
		||||
	msg, err := natsio.GetServer().Request(subject.Location.CountWardByCondition, toBytes(p))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return 0, err
 | 
			
		||||
	}
 | 
			
		||||
	var r struct {
 | 
			
		||||
		Data  int64  `json:"data"`
 | 
			
		||||
		Error string `json:"error"`
 | 
			
		||||
	}
 | 
			
		||||
	if err = json.Unmarshal(msg.Data, &r); err != nil {
 | 
			
		||||
		return 0, err
 | 
			
		||||
	}
 | 
			
		||||
	if r.Error != "" {
 | 
			
		||||
		return 0, errors.New(r.Error)
 | 
			
		||||
	}
 | 
			
		||||
	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
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,3 +20,19 @@ type ActionBy struct {
 | 
			
		|||
	ID   string `json:"id"`
 | 
			
		||||
	Name string `json:"name"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RequestCondition ...
 | 
			
		||||
type RequestCondition struct {
 | 
			
		||||
	Code         int   `json:"code"`
 | 
			
		||||
	Codes        []int `json:"codes"`
 | 
			
		||||
	DistrictCode int   `json:"districtCode"`
 | 
			
		||||
	ProvinceCode int   `json:"provinceCode"`
 | 
			
		||||
 | 
			
		||||
	Slug         string   `json:"slug"`
 | 
			
		||||
	Slugs        []string `json:"slugs"`
 | 
			
		||||
	DistrictSlug string   `json:"districtSlug"`
 | 
			
		||||
	ProvinceSlug string   `json:"provinceSlug"`
 | 
			
		||||
 | 
			
		||||
	Keyword string `json:"keyword"`
 | 
			
		||||
	Region  string `json:"region"`
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,23 +1,65 @@
 | 
			
		|||
package model
 | 
			
		||||
 | 
			
		||||
// LocationRequestPayload ...
 | 
			
		||||
type LocationRequestPayload struct {
 | 
			
		||||
type (
 | 
			
		||||
	LocationRequestPayload struct {
 | 
			
		||||
		Province int `json:"province"`
 | 
			
		||||
		District int `json:"district"`
 | 
			
		||||
		Ward     int `json:"ward"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// ProvinceRequestPayload ...
 | 
			
		||||
type ProvinceRequestPayload struct {
 | 
			
		||||
	ProvinceRequestPayload struct {
 | 
			
		||||
		Codes []int `json:"codes"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// ProvinceRequestCondition ...
 | 
			
		||||
	ProvinceRequestCondition struct {
 | 
			
		||||
		Code    int      `json:"code"`
 | 
			
		||||
		Codes   []int    `json:"codes"`
 | 
			
		||||
		Slug    string   `json:"slug"`
 | 
			
		||||
		Slugs   []string `json:"slugs"`
 | 
			
		||||
		Keyword string   `json:"keyword"`
 | 
			
		||||
		Region  string   `json:"region"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// DistrictRequestPayload ...
 | 
			
		||||
type DistrictRequestPayload struct {
 | 
			
		||||
	DistrictRequestPayload struct {
 | 
			
		||||
		Codes []int `json:"codes"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// DistrictRequestCondition ...
 | 
			
		||||
	DistrictRequestCondition struct {
 | 
			
		||||
		Code         int    `json:"code"`
 | 
			
		||||
		Codes        []int  `json:"codes"`
 | 
			
		||||
		ProvinceCode int    `json:"provinceCode"`
 | 
			
		||||
		Slug         string `json:"slug"`
 | 
			
		||||
		ProvinceSlug string `json:"provinceSlug"`
 | 
			
		||||
		Keyword      string `json:"keyword"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// WardRequestPayload ...
 | 
			
		||||
type WardRequestPayload struct {
 | 
			
		||||
	WardRequestPayload struct {
 | 
			
		||||
		Codes []int `json:"codes"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// WardRequestCondition ...
 | 
			
		||||
	WardRequestCondition struct {
 | 
			
		||||
		Code         int    `json:"code"`
 | 
			
		||||
		Codes        []int  `json:"codes"`
 | 
			
		||||
		DistrictCode int    `json:"districtCode"`
 | 
			
		||||
		ProvinceCode int    `json:"provinceCode"`
 | 
			
		||||
		Slug         string `json:"slug"`
 | 
			
		||||
		DistrictSlug string `json:"districtSlug"`
 | 
			
		||||
		ProvinceSlug string `json:"provinceSlug"`
 | 
			
		||||
		Keyword      string `json:"keyword"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// ProvinceDistinctWithField ...
 | 
			
		||||
	ProvinceDistinctWithField struct {
 | 
			
		||||
		Conditions struct {
 | 
			
		||||
			Region string `json:"region"`
 | 
			
		||||
		} `json:"conditions"`
 | 
			
		||||
		Field string `json:"filed"`
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,43 +1,96 @@
 | 
			
		|||
package model
 | 
			
		||||
 | 
			
		||||
type ResponseLocationAddress struct {
 | 
			
		||||
import "time"
 | 
			
		||||
 | 
			
		||||
type (
 | 
			
		||||
	// ResponseLocationAddress ...
 | 
			
		||||
	ResponseLocationAddress struct {
 | 
			
		||||
		Province LocationProvince `json:"province"`
 | 
			
		||||
		District LocationDistrict `json:"district"`
 | 
			
		||||
		Ward     LocationWard     `json:"ward"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// LocationProvince ...
 | 
			
		||||
type LocationProvince struct {
 | 
			
		||||
	LocationProvince struct {
 | 
			
		||||
		ID             string `json:"id"`
 | 
			
		||||
		Name           string `json:"name"`
 | 
			
		||||
		Code           int    `json:"code"`
 | 
			
		||||
		RegionCode     string `json:"regionCode"`
 | 
			
		||||
		MainRegionCode string `json:"mainRegionCode"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// LocationDistrict ...
 | 
			
		||||
type LocationDistrict struct {
 | 
			
		||||
	LocationDistrict struct {
 | 
			
		||||
		ID   string `json:"id"`
 | 
			
		||||
		Name string `json:"name"`
 | 
			
		||||
		Code int    `json:"code"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// LocationWard ...
 | 
			
		||||
type LocationWard struct {
 | 
			
		||||
	LocationWard struct {
 | 
			
		||||
		ID   string `json:"id"`
 | 
			
		||||
		Name string `json:"name"`
 | 
			
		||||
		Code int    `json:"code"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// LocationProvinceResponse ...
 | 
			
		||||
type LocationProvinceResponse struct {
 | 
			
		||||
	LocationProvinceResponse struct {
 | 
			
		||||
		Provinces []LocationProvince `json:"provinces"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// LocationDistrictResponse ...
 | 
			
		||||
type LocationDistrictResponse struct {
 | 
			
		||||
	LocationDistrictResponse struct {
 | 
			
		||||
		Districts []LocationDistrict `json:"districts"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// LocationWardResponse ...
 | 
			
		||||
type LocationWardResponse struct {
 | 
			
		||||
	LocationWardResponse struct {
 | 
			
		||||
		Wards []LocationWard `json:"wards"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// LocationProvinceDetailResponse ...
 | 
			
		||||
	LocationProvinceDetailResponse struct {
 | 
			
		||||
		ID             string    `json:"_id"`
 | 
			
		||||
		Name           string    `json:"name"`
 | 
			
		||||
		SearchString   string    `json:"searchString"`
 | 
			
		||||
		Slug           string    `json:"slug"`
 | 
			
		||||
		OldSlug        string    `json:"oldSlug"`
 | 
			
		||||
		Code           int       `json:"code"`
 | 
			
		||||
		CountryCode    string    `json:"countryCode"`
 | 
			
		||||
		RegionCode     string    `json:"regionCode"`
 | 
			
		||||
		MainRegionCode string    `json:"mainRegionCode"`
 | 
			
		||||
		TotalDistricts int       `json:"totalDistricts"`
 | 
			
		||||
		TotalWards     int       `json:"totalWards"`
 | 
			
		||||
		CreatedAt      time.Time `json:"createdAt"`
 | 
			
		||||
		UpdatedAt      time.Time `json:"updatedAt"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// LocationDistrictDetailResponse ...
 | 
			
		||||
	LocationDistrictDetailResponse struct {
 | 
			
		||||
		ID           string    `json:"_id"`
 | 
			
		||||
		Name         string    `json:"name"`
 | 
			
		||||
		SearchString string    `json:"searchString"`
 | 
			
		||||
		Slug         string    `json:"slug"`
 | 
			
		||||
		OldSlug      string    `json:"oldSlug"`
 | 
			
		||||
		Code         int       `json:"code"`
 | 
			
		||||
		ProvinceCode int       `json:"provinceCode"`
 | 
			
		||||
		Area         int       `json:"area"`
 | 
			
		||||
		TotalWards   int       `json:"totalWards"`
 | 
			
		||||
		CreatedAt    time.Time `json:"createdAt"`
 | 
			
		||||
		UpdatedAt    time.Time `json:"updatedAt"`
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// LocationWardDetailResponse ...
 | 
			
		||||
	LocationWardDetailResponse struct {
 | 
			
		||||
		ID           string    `json:"_id"`
 | 
			
		||||
		Name         string    `json:"name"`
 | 
			
		||||
		SearchString string    `json:"searchString"`
 | 
			
		||||
		Slug         string    `json:"slug"`
 | 
			
		||||
		OldSlugs     []string  `json:"oldSlugs"`
 | 
			
		||||
		Code         int       `json:"code"`
 | 
			
		||||
		DistrictCode int       `json:"districtCode"`
 | 
			
		||||
		ProvinceCode int       `json:"provinceCode"`
 | 
			
		||||
		CreatedAt    time.Time `json:"createdAt"`
 | 
			
		||||
		UpdatedAt    time.Time `json:"updatedAt"`
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,9 +11,29 @@ var Location = struct {
 | 
			
		|||
	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"),
 | 
			
		||||
	ProvinceDistinctWithField: getLocationValue("province_distinct_with_field"),
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue