Merge pull request #6 from Selly-Modules/get-location-warehouse
nats-location-supplier
This commit is contained in:
		
						commit
						3da067b159
					
				| 
						 | 
					@ -0,0 +1,38 @@
 | 
				
			||||||
 | 
					package client
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"encoding/json"
 | 
				
			||||||
 | 
						"errors"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio"
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio/model"
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio/subject"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Location ...
 | 
				
			||||||
 | 
					type Location struct{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetLocation ...
 | 
				
			||||||
 | 
					func GetLocation() Location {
 | 
				
			||||||
 | 
						return Location{}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (l Location) GetLocationByCode(payload model.LocationRequestPayload) (*model.ResponseLocationAddress, error) {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Location.GetLocationByCode, toBytes(payload))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Data  *model.ResponseLocationAddress `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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,34 @@
 | 
				
			||||||
 | 
					package client
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"encoding/json"
 | 
				
			||||||
 | 
						"errors"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio"
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio/model"
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio/subject"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Supplier ...
 | 
				
			||||||
 | 
					type Supplier struct{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (s Supplier) GetSupplierInfo(supplierID string) (*model.ResponseSupplierInfo, error) {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Supplier.GetSupplierInfo, toBytes(supplierID))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Data  *model.ResponseSupplierInfo `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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					package model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// LocationRequestPayload ...
 | 
				
			||||||
 | 
					type LocationRequestPayload struct {
 | 
				
			||||||
 | 
						Province int `json:"province"`
 | 
				
			||||||
 | 
						District int `json:"district"`
 | 
				
			||||||
 | 
						Ward     int `json:"ward"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,31 @@
 | 
				
			||||||
 | 
					package model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type ResponseLocationAddress struct {
 | 
				
			||||||
 | 
						Province LocationProvince `json:"province"`
 | 
				
			||||||
 | 
						District LocationDistrict `json:"district"`
 | 
				
			||||||
 | 
						Ward     LocationWard     `json:"ward"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// LocationProvince ...
 | 
				
			||||||
 | 
					type LocationProvince struct {
 | 
				
			||||||
 | 
						ID   string `json:"id"`
 | 
				
			||||||
 | 
						Name string `json:"name"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// LocationDistrict ...
 | 
				
			||||||
 | 
					type LocationDistrict struct {
 | 
				
			||||||
 | 
						ID   string `json:"id"`
 | 
				
			||||||
 | 
						Name string `json:"name"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// LocationWard ...
 | 
				
			||||||
 | 
					type LocationWard struct {
 | 
				
			||||||
 | 
						ID   string `json:"id"`
 | 
				
			||||||
 | 
						Name string `json:"name"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ResponseSupplierInfo ...
 | 
				
			||||||
 | 
					type ResponseSupplierInfo struct {
 | 
				
			||||||
 | 
						ID   string `json:"id"`
 | 
				
			||||||
 | 
						Name string `json:"name"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -4,8 +4,12 @@ var prefixes = struct {
 | 
				
			||||||
	Communication string
 | 
						Communication string
 | 
				
			||||||
	Order         string
 | 
						Order         string
 | 
				
			||||||
	Warehouse     string
 | 
						Warehouse     string
 | 
				
			||||||
 | 
						Location      string
 | 
				
			||||||
 | 
						Supplier      string
 | 
				
			||||||
}{
 | 
					}{
 | 
				
			||||||
	Communication: "communication",
 | 
						Communication: "communication",
 | 
				
			||||||
	Order:         "order",
 | 
						Order:         "order",
 | 
				
			||||||
	Warehouse:     "warehouse",
 | 
						Warehouse:     "warehouse",
 | 
				
			||||||
 | 
						Location:      "location",
 | 
				
			||||||
 | 
						Supplier:      "supplier",
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					package subject
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func getLocationValue(val string) string {
 | 
				
			||||||
 | 
						return fmt.Sprintf("%s.%s", prefixes.Location, val)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var Location = struct {
 | 
				
			||||||
 | 
						GetLocationByCode string
 | 
				
			||||||
 | 
					}{
 | 
				
			||||||
 | 
						GetLocationByCode: getLocationValue("get_location_warehouse"),
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					package subject
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func getSupplierValue(val string) string {
 | 
				
			||||||
 | 
						return fmt.Sprintf("%s.%s", prefixes.Supplier, val)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var Supplier = struct {
 | 
				
			||||||
 | 
						GetSupplierInfo string
 | 
				
			||||||
 | 
					}{
 | 
				
			||||||
 | 
						GetSupplierInfo: getSupplierValue("get_supplier_info"),
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue