basic orders are ready
This commit is contained in:
@@ -124,13 +124,13 @@ func (h *AddressesHandler) RetrieveAddressesInfo(c fiber.Ctx) error {
|
|||||||
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrInvalidBody)))
|
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrInvalidBody)))
|
||||||
}
|
}
|
||||||
|
|
||||||
addresses_info, err := h.addressesService.RetrieveAddressesInfo(userID)
|
addresses, err := h.addressesService.RetrieveAddresses(userID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return c.Status(responseErrors.GetErrorStatus(err)).
|
return c.Status(responseErrors.GetErrorStatus(err)).
|
||||||
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, err)))
|
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, err)))
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.JSON(response.Make(&addresses_info, 0, i18n.T_(c, response.Message_OK)))
|
return c.JSON(response.Make(addresses, 0, i18n.T_(c, response.Message_OK)))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *AddressesHandler) DeleteAddress(c fiber.Ctx) error {
|
func (h *AddressesHandler) DeleteAddress(c fiber.Ctx) error {
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ func OrdersHandlerRoutes(r fiber.Router) fiber.Router {
|
|||||||
handler := NewOrdersHandler()
|
handler := NewOrdersHandler()
|
||||||
|
|
||||||
r.Get("/list", handler.ListOrders)
|
r.Get("/list", handler.ListOrders)
|
||||||
r.Get("/place-new-order", handler.PlaceNewOrder)
|
r.Post("/place-new-order", handler.PlaceNewOrder)
|
||||||
r.Get("/change-order-address", handler.ChangeOrderAddress)
|
r.Get("/change-order-address", handler.ChangeOrderAddress)
|
||||||
r.Get("/change-order-status", handler.ChangeOrderStatus)
|
r.Get("/change-order-status", handler.ChangeOrderStatus)
|
||||||
|
|
||||||
@@ -82,7 +82,6 @@ func (h *OrdersHandler) PlaceNewOrder(c fiber.Ctx) error {
|
|||||||
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrBadAttribute)))
|
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrBadAttribute)))
|
||||||
}
|
}
|
||||||
|
|
||||||
address_info := c.Query("address_info")
|
|
||||||
country_id_attribute := c.Query("country_id")
|
country_id_attribute := c.Query("country_id")
|
||||||
country_id, err := strconv.Atoi(country_id_attribute)
|
country_id, err := strconv.Atoi(country_id_attribute)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -90,6 +89,12 @@ func (h *OrdersHandler) PlaceNewOrder(c fiber.Ctx) error {
|
|||||||
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrBadAttribute)))
|
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrBadAttribute)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
address_info := string(c.Body())
|
||||||
|
if address_info == "" {
|
||||||
|
return c.Status(responseErrors.GetErrorStatus(responseErrors.ErrInvalidBody)).
|
||||||
|
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrInvalidBody)))
|
||||||
|
}
|
||||||
|
|
||||||
name := c.Query("name")
|
name := c.Query("name")
|
||||||
|
|
||||||
err = h.ordersService.PlaceNewOrder(userID, uint(cart_id), name, uint(country_id), address_info)
|
err = h.ordersService.PlaceNewOrder(userID, uint(cart_id), name, uint(country_id), address_info)
|
||||||
@@ -116,7 +121,6 @@ func (h *OrdersHandler) ChangeOrderAddress(c fiber.Ctx) error {
|
|||||||
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrBadAttribute)))
|
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrBadAttribute)))
|
||||||
}
|
}
|
||||||
|
|
||||||
address_info := c.Query("address_info")
|
|
||||||
country_id_attribute := c.Query("country_id")
|
country_id_attribute := c.Query("country_id")
|
||||||
country_id, err := strconv.Atoi(country_id_attribute)
|
country_id, err := strconv.Atoi(country_id_attribute)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -124,6 +128,12 @@ func (h *OrdersHandler) ChangeOrderAddress(c fiber.Ctx) error {
|
|||||||
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrBadAttribute)))
|
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrBadAttribute)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
address_info := string(c.Body())
|
||||||
|
if address_info == "" {
|
||||||
|
return c.Status(responseErrors.GetErrorStatus(responseErrors.ErrInvalidBody)).
|
||||||
|
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrInvalidBody)))
|
||||||
|
}
|
||||||
|
|
||||||
err = h.ordersService.ChangeOrderAddress(user, uint(order_id), uint(country_id), address_info)
|
err = h.ordersService.ChangeOrderAddress(user, uint(order_id), uint(country_id), address_info)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return c.Status(responseErrors.GetErrorStatus(err)).
|
return c.Status(responseErrors.GetErrorStatus(err)).
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ package model
|
|||||||
type Address struct {
|
type Address struct {
|
||||||
ID uint `gorm:"column:id;primaryKey;autoIncrement" json:"id"`
|
ID uint `gorm:"column:id;primaryKey;autoIncrement" json:"id"`
|
||||||
CustomerID uint `gorm:"column:b2b_customer_id;not null;index" json:"customer_id"`
|
CustomerID uint `gorm:"column:b2b_customer_id;not null;index" json:"customer_id"`
|
||||||
AddressInfo string `gorm:"column:address_info;not null" json:"address_info"`
|
AddressString string `gorm:"column:address_string;not null" json:"address_string"`
|
||||||
|
AddressUnparsed *AddressUnparsed `gorm:"-" json:"address_unparsed"`
|
||||||
CountryID uint `gorm:"column:b2b_country_id;not null" json:"country_id"`
|
CountryID uint `gorm:"column:b2b_country_id;not null" json:"country_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -11,15 +12,7 @@ func (Address) TableName() string {
|
|||||||
return "b2b_addresses"
|
return "b2b_addresses"
|
||||||
}
|
}
|
||||||
|
|
||||||
type AddressUnparsed struct {
|
type AddressUnparsed interface{}
|
||||||
ID uint `gorm:"column:id;primaryKey;autoIncrement" json:"id"`
|
|
||||||
CustomerID uint `gorm:"column:b2b_customer_id;not null;index" json:"customer_id"`
|
|
||||||
AddressInfo AddressField `gorm:"column:address_info;not null" json:"address_info"`
|
|
||||||
CountryID uint `gorm:"column:b2b_country_id;not null" json:"country_id"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type AddressField interface {
|
|
||||||
}
|
|
||||||
|
|
||||||
// Address template in Poland
|
// Address template in Poland
|
||||||
type AddressPL struct {
|
type AddressPL struct {
|
||||||
|
|||||||
@@ -5,9 +5,10 @@ type CustomerOrder struct {
|
|||||||
UserID uint `gorm:"column:user_id;not null;index" json:"user_id"`
|
UserID uint `gorm:"column:user_id;not null;index" json:"user_id"`
|
||||||
Name string `gorm:"column:name;not null" json:"name"`
|
Name string `gorm:"column:name;not null" json:"name"`
|
||||||
CountryID uint `gorm:"column:country_id;not null" json:"country_id"`
|
CountryID uint `gorm:"column:country_id;not null" json:"country_id"`
|
||||||
AddressJSON string `gorm:"column:address_json;not null" json:"address_json"`
|
AddressString string `gorm:"column:address_string;not null" json:"address_string"`
|
||||||
|
AddressUnparsed *AddressUnparsed `gorm:"-" json:"address_unparsed"`
|
||||||
Status string `gorm:"column:status;size:50;not null" json:"status"`
|
Status string `gorm:"column:status;size:50;not null" json:"status"`
|
||||||
Products []OrderProduct `gorm:"foreignKey:OrderID;references:ID" json:"products"`
|
Products []OrderProduct `gorm:"foreignKey:OrderID;references:OrderID" json:"products"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (CustomerOrder) TableName() string {
|
func (CustomerOrder) TableName() string {
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ func (repo *AddressesRepo) UserAddressesAmt(user_id uint) (uint, error) {
|
|||||||
func (repo *AddressesRepo) AddNewAddress(user_id uint, address_info string, country_id uint) error {
|
func (repo *AddressesRepo) AddNewAddress(user_id uint, address_info string, country_id uint) error {
|
||||||
address := model.Address{
|
address := model.Address{
|
||||||
CustomerID: user_id,
|
CustomerID: user_id,
|
||||||
AddressInfo: address_info,
|
AddressString: address_info,
|
||||||
CountryID: country_id,
|
CountryID: country_id,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@ func (repo *AddressesRepo) UpdateAddress(user_id uint, address_id uint, address_
|
|||||||
address := model.Address{
|
address := model.Address{
|
||||||
ID: address_id,
|
ID: address_id,
|
||||||
CustomerID: user_id,
|
CustomerID: user_id,
|
||||||
AddressInfo: address_info,
|
AddressString: address_info,
|
||||||
CountryID: country_id,
|
CountryID: country_id,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
|
|
||||||
type UIOrdersRepo interface {
|
type UIOrdersRepo interface {
|
||||||
UserHasOrder(user_id uint, order_id uint) (bool, error)
|
UserHasOrder(user_id uint, order_id uint) (bool, error)
|
||||||
Find(user_id uint, p find.Paging, filt *filters.FiltersList) (find.Found[model.CustomerOrder], error)
|
Find(user_id uint, p find.Paging, filt *filters.FiltersList) (*find.Found[model.CustomerOrder], error)
|
||||||
PlaceNewOrder(cart *model.CustomerCart, name string, country_id uint, address_info string) error
|
PlaceNewOrder(cart *model.CustomerCart, name string, country_id uint, address_info string) error
|
||||||
ChangeOrderAddress(order_id uint, country_id uint, address_info string) error
|
ChangeOrderAddress(order_id uint, country_id uint, address_info string) error
|
||||||
ChangeOrderStatus(order_id uint, status string) error
|
ChangeOrderStatus(order_id uint, status string) error
|
||||||
@@ -35,14 +35,14 @@ func (repo *OrdersRepo) UserHasOrder(user_id uint, order_id uint) (bool, error)
|
|||||||
return amt >= 1, err
|
return amt >= 1, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (repo *OrdersRepo) Find(user_id uint, p find.Paging, filt *filters.FiltersList) (find.Found[model.CustomerOrder], error) {
|
func (repo *OrdersRepo) Find(user_id uint, p find.Paging, filt *filters.FiltersList) (*find.Found[model.CustomerOrder], error) {
|
||||||
var list []model.CustomerOrder
|
var list []model.CustomerOrder
|
||||||
var total int64
|
var total int64
|
||||||
|
|
||||||
query := db.Get().
|
query := db.Get().
|
||||||
Model(&model.CustomerOrder{}).
|
Model(&model.CustomerOrder{}).
|
||||||
Preload("Products").
|
Preload("Products").
|
||||||
Order("b2b_customer_orders.id DESC")
|
Order("b2b_customer_orders.order_id DESC")
|
||||||
|
|
||||||
// Apply all filters
|
// Apply all filters
|
||||||
if filt != nil {
|
if filt != nil {
|
||||||
@@ -52,7 +52,7 @@ func (repo *OrdersRepo) Find(user_id uint, p find.Paging, filt *filters.FiltersL
|
|||||||
// run counter first as query is without limit and offset
|
// run counter first as query is without limit and offset
|
||||||
err := query.Count(&total).Error
|
err := query.Count(&total).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return find.Found[model.CustomerOrder]{}, err
|
return &find.Found[model.CustomerOrder]{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = query.
|
err = query.
|
||||||
@@ -60,10 +60,10 @@ func (repo *OrdersRepo) Find(user_id uint, p find.Paging, filt *filters.FiltersL
|
|||||||
Offset(p.Offset()).
|
Offset(p.Offset()).
|
||||||
Find(&list).Error
|
Find(&list).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return find.Found[model.CustomerOrder]{}, err
|
return &find.Found[model.CustomerOrder]{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return find.Found[model.CustomerOrder]{
|
return &find.Found[model.CustomerOrder]{
|
||||||
Items: list,
|
Items: list,
|
||||||
Count: uint(total),
|
Count: uint(total),
|
||||||
}, nil
|
}, nil
|
||||||
@@ -74,7 +74,7 @@ func (repo *OrdersRepo) PlaceNewOrder(cart *model.CustomerCart, name string, cou
|
|||||||
UserID: cart.UserID,
|
UserID: cart.UserID,
|
||||||
Name: name,
|
Name: name,
|
||||||
CountryID: country_id,
|
CountryID: country_id,
|
||||||
AddressJSON: address_info,
|
AddressString: address_info,
|
||||||
Status: constdata.NEW_ORDER_STATUS,
|
Status: constdata.NEW_ORDER_STATUS,
|
||||||
Products: make([]model.OrderProduct, 0, len(cart.Products)),
|
Products: make([]model.OrderProduct, 0, len(cart.Products)),
|
||||||
}
|
}
|
||||||
@@ -96,7 +96,7 @@ func (repo *OrdersRepo) ChangeOrderAddress(order_id uint, country_id uint, addre
|
|||||||
Where("order_id = ?", order_id).
|
Where("order_id = ?", order_id).
|
||||||
Updates(map[string]interface{}{
|
Updates(map[string]interface{}{
|
||||||
"country_id": country_id,
|
"country_id": country_id,
|
||||||
"address_info": address_info,
|
"address_string": address_info,
|
||||||
}).
|
}).
|
||||||
Error
|
Error
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ func New() *AddressesService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *AddressesService) GetTemplate(country_id uint) (model.AddressField, error) {
|
func (s *AddressesService) GetTemplate(country_id uint) (model.AddressUnparsed, error) {
|
||||||
switch country_id {
|
switch country_id {
|
||||||
|
|
||||||
case 1: // Poland
|
case 1: // Poland
|
||||||
@@ -74,30 +74,23 @@ func (s *AddressesService) ModifyAddress(user_id uint, address_id uint, address_
|
|||||||
return s.repo.UpdateAddress(user_id, address_id, address_info, country_id)
|
return s.repo.UpdateAddress(user_id, address_id, address_info, country_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *AddressesService) RetrieveAddressesInfo(user_id uint) (*[]model.AddressUnparsed, error) {
|
func (s *AddressesService) RetrieveAddresses(user_id uint) (*[]model.Address, error) {
|
||||||
parsed_addresses, err := s.repo.RetrieveAddresses(user_id)
|
addresses, err := s.repo.RetrieveAddresses(user_id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var unparsed_addresses []model.AddressUnparsed
|
for i := 0; i < len(*addresses); i++ {
|
||||||
|
address_unparsed, err := s.ValidateAddressJson((*addresses)[i].AddressString, (*addresses)[i].CountryID)
|
||||||
for i := 0; i < len(*parsed_addresses); i++ {
|
|
||||||
var next_address model.AddressUnparsed
|
|
||||||
next_address.ID = (*parsed_addresses)[i].ID
|
|
||||||
next_address.CustomerID = (*parsed_addresses)[i].CustomerID
|
|
||||||
next_address.CountryID = (*parsed_addresses)[i].CountryID
|
|
||||||
|
|
||||||
next_address.AddressInfo, err = s.ValidateAddressJson((*parsed_addresses)[i].AddressInfo, next_address.CountryID)
|
|
||||||
// log such errors
|
// log such errors
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("err: %v\n", err)
|
fmt.Printf("err: %v\n", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
unparsed_addresses = append(unparsed_addresses, next_address)
|
(*addresses)[i].AddressUnparsed = &address_unparsed
|
||||||
}
|
}
|
||||||
|
|
||||||
return &unparsed_addresses, nil
|
return addresses, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *AddressesService) DeleteAddress(user_id uint, address_id uint) error {
|
func (s *AddressesService) DeleteAddress(user_id uint, address_id uint) error {
|
||||||
@@ -112,7 +105,7 @@ func (s *AddressesService) DeleteAddress(user_id uint, address_id uint) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// validateAddressJson makes sure that the info string represents a valid json of address in given country
|
// validateAddressJson makes sure that the info string represents a valid json of address in given country
|
||||||
func (s *AddressesService) ValidateAddressJson(info string, country_id uint) (model.AddressField, error) {
|
func (s *AddressesService) ValidateAddressJson(info string, country_id uint) (model.AddressUnparsed, error) {
|
||||||
dec := json.NewDecoder(strings.NewReader(info))
|
dec := json.NewDecoder(strings.NewReader(info))
|
||||||
dec.DisallowUnknownFields()
|
dec.DisallowUnknownFields()
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package orderService
|
package orderService
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"git.ma-al.com/goc_daniel/b2b/app/delivery/middleware/perms"
|
"git.ma-al.com/goc_daniel/b2b/app/delivery/middleware/perms"
|
||||||
@@ -27,14 +28,29 @@ func New() *OrderService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *OrderService) Find(user *model.Customer, p find.Paging, filt *filters.FiltersList) (find.Found[model.CustomerOrder], error) {
|
func (s *OrderService) Find(user *model.Customer, p find.Paging, filt *filters.FiltersList) (*find.Found[model.CustomerOrder], error) {
|
||||||
if !user.HasPermission(perms.ViewAllOrders) {
|
if !user.HasPermission(perms.ViewAllOrders) {
|
||||||
// append filter to view only this user's orders
|
// append filter to view only this user's orders
|
||||||
idStr := strconv.FormatUint(uint64(user.ID), 10)
|
idStr := strconv.FormatUint(uint64(user.ID), 10)
|
||||||
filt.Append(filters.Where("b2b_customer_orders.user_id = " + idStr))
|
filt.Append(filters.Where("b2b_customer_orders.user_id = " + idStr))
|
||||||
}
|
}
|
||||||
|
|
||||||
return s.ordersRepo.Find(user.ID, p, filt)
|
list, err := s.ordersRepo.Find(user.ID, p, filt)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < len(list.Items); i++ {
|
||||||
|
address_unparsed, err := s.addressesService.ValidateAddressJson(list.Items[i].AddressString, list.Items[i].CountryID)
|
||||||
|
// log such errors
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("err: %v\n", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
list.Items[i].AddressUnparsed = &address_unparsed
|
||||||
|
}
|
||||||
|
|
||||||
|
return list, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *OrderService) PlaceNewOrder(user_id uint, cart_id uint, name string, country_id uint, address_info string) error {
|
func (s *OrderService) PlaceNewOrder(user_id uint, cart_id uint, name string, country_id uint, address_info string) error {
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ info:
|
|||||||
|
|
||||||
http:
|
http:
|
||||||
method: GET
|
method: GET
|
||||||
url: http://localhost:3000/api/v1/restricted/carts/retrieve-cart?cart_id=3
|
url: http://localhost:3000/api/v1/restricted/carts/retrieve-cart?cart_id=1
|
||||||
params:
|
params:
|
||||||
- name: cart_id
|
- name: cart_id
|
||||||
value: "3"
|
value: "1"
|
||||||
type: query
|
type: query
|
||||||
auth: inherit
|
auth: inherit
|
||||||
|
|
||||||
|
|||||||
33
bruno/b2b_daniel/orders/change-order-address.yml
Normal file
33
bruno/b2b_daniel/orders/change-order-address.yml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
info:
|
||||||
|
name: change-order-address
|
||||||
|
type: http
|
||||||
|
seq: 3
|
||||||
|
|
||||||
|
http:
|
||||||
|
method: GET
|
||||||
|
url: http://localhost:3000/api/v1/restricted/orders/change-order-address?order_id=1&country_id=1
|
||||||
|
params:
|
||||||
|
- name: order_id
|
||||||
|
value: "1"
|
||||||
|
type: query
|
||||||
|
- name: country_id
|
||||||
|
value: "1"
|
||||||
|
type: query
|
||||||
|
body:
|
||||||
|
type: json
|
||||||
|
data: |-
|
||||||
|
{
|
||||||
|
"postal_code": "31-154",
|
||||||
|
"city": "Kraków",
|
||||||
|
"voivodeship": "śląskie",
|
||||||
|
"street": "Długa",
|
||||||
|
"building_no": "5",
|
||||||
|
"recipient": "Adam Adamowicz"
|
||||||
|
}
|
||||||
|
auth: inherit
|
||||||
|
|
||||||
|
settings:
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
followRedirects: true
|
||||||
|
maxRedirects: 5
|
||||||
22
bruno/b2b_daniel/orders/change-order-status.yml
Normal file
22
bruno/b2b_daniel/orders/change-order-status.yml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
info:
|
||||||
|
name: change-order-status
|
||||||
|
type: http
|
||||||
|
seq: 4
|
||||||
|
|
||||||
|
http:
|
||||||
|
method: GET
|
||||||
|
url: http://localhost:3000/api/v1/restricted/orders/change-order-status?order_id=1&status=PAID
|
||||||
|
params:
|
||||||
|
- name: order_id
|
||||||
|
value: "1"
|
||||||
|
type: query
|
||||||
|
- name: status
|
||||||
|
value: PAID
|
||||||
|
type: query
|
||||||
|
auth: inherit
|
||||||
|
|
||||||
|
settings:
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
followRedirects: true
|
||||||
|
maxRedirects: 5
|
||||||
7
bruno/b2b_daniel/orders/folder.yml
Normal file
7
bruno/b2b_daniel/orders/folder.yml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
info:
|
||||||
|
name: orders
|
||||||
|
type: folder
|
||||||
|
seq: 11
|
||||||
|
|
||||||
|
request:
|
||||||
|
auth: inherit
|
||||||
31
bruno/b2b_daniel/orders/list.yml
Normal file
31
bruno/b2b_daniel/orders/list.yml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
info:
|
||||||
|
name: list
|
||||||
|
type: http
|
||||||
|
seq: 2
|
||||||
|
|
||||||
|
http:
|
||||||
|
method: GET
|
||||||
|
url: http://localhost:3000/api/v1/restricted/orders/list?p=1&elems=30&sort=product_id,asc&user_id=2&name=~sdj
|
||||||
|
params:
|
||||||
|
- name: p
|
||||||
|
value: "1"
|
||||||
|
type: query
|
||||||
|
- name: elems
|
||||||
|
value: "30"
|
||||||
|
type: query
|
||||||
|
- name: sort
|
||||||
|
value: product_id,asc
|
||||||
|
type: query
|
||||||
|
- name: user_id
|
||||||
|
value: "2"
|
||||||
|
type: query
|
||||||
|
- name: name
|
||||||
|
value: ~sdj
|
||||||
|
type: query
|
||||||
|
auth: inherit
|
||||||
|
|
||||||
|
settings:
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
followRedirects: true
|
||||||
|
maxRedirects: 5
|
||||||
37
bruno/b2b_daniel/orders/place-new-order.yml
Normal file
37
bruno/b2b_daniel/orders/place-new-order.yml
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
info:
|
||||||
|
name: place-new-order
|
||||||
|
type: http
|
||||||
|
seq: 1
|
||||||
|
|
||||||
|
http:
|
||||||
|
method: POST
|
||||||
|
url: http://localhost:3000/api/v1/restricted/orders/place-new-order?cart_id=1&name=sdjalksd&country_id=1
|
||||||
|
params:
|
||||||
|
- name: cart_id
|
||||||
|
value: "1"
|
||||||
|
type: query
|
||||||
|
- name: name
|
||||||
|
value: sdjalksd
|
||||||
|
type: query
|
||||||
|
- name: country_id
|
||||||
|
value: "1"
|
||||||
|
type: query
|
||||||
|
body:
|
||||||
|
type: json
|
||||||
|
data: |-
|
||||||
|
{
|
||||||
|
"postal_code": "31-154",
|
||||||
|
"city": "Kraków",
|
||||||
|
"voivodeship": "małopolskie",
|
||||||
|
"street": "Długa",
|
||||||
|
"building_no": "5",
|
||||||
|
"apartment_no": "7",
|
||||||
|
"recipient": "Jan Kowalski"
|
||||||
|
}
|
||||||
|
auth: inherit
|
||||||
|
|
||||||
|
settings:
|
||||||
|
encodeUrl: true
|
||||||
|
timeout: 0
|
||||||
|
followRedirects: true
|
||||||
|
maxRedirects: 5
|
||||||
@@ -151,34 +151,6 @@ CREATE TABLE IF NOT EXISTS b2b_carts_products (
|
|||||||
CREATE INDEX IF NOT EXISTS idx_carts_products_cart_id ON b2b_carts_products (cart_id);
|
CREATE INDEX IF NOT EXISTS idx_carts_products_cart_id ON b2b_carts_products (cart_id);
|
||||||
|
|
||||||
|
|
||||||
-- customer_orders
|
|
||||||
CREATE TABLE IF NOT EXISTS b2b_customer_orders (
|
|
||||||
order_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
user_id BIGINT UNSIGNED NOT NULL,
|
|
||||||
name TEXT NOT NULL,
|
|
||||||
country_id BIGINT UNSIGNED NOT NULL,
|
|
||||||
address_json TEXT NOT NULL,
|
|
||||||
status VARCHAR(50) NOT NULL,
|
|
||||||
CONSTRAINT fk_customer_orders_customers FOREIGN KEY (user_id) REFERENCES b2b_customers(id) ON DELETE NO ACTION ON UPDATE CASCADE,
|
|
||||||
CONSTRAINT fk_customer_orders_countries FOREIGN KEY (country_id) REFERENCES b2b_countries(id) ON DELETE NO ACTION ON UPDATE CASCADE
|
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
|
|
||||||
CREATE INDEX idx_customer_orders_user_id ON b2b_customer_orders (user_id);
|
|
||||||
CREATE INDEX idx_customer_orders_country_id ON b2b_customer_orders (country_id);
|
|
||||||
|
|
||||||
|
|
||||||
-- orders_products
|
|
||||||
CREATE TABLE IF NOT EXISTS b2b_orders_products (
|
|
||||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
order_id BIGINT UNSIGNED NOT NULL,
|
|
||||||
product_id INT UNSIGNED NOT NULL,
|
|
||||||
product_attribute_id INT NULL,
|
|
||||||
amount INT UNSIGNED NOT NULL,
|
|
||||||
CONSTRAINT fk_orders_products_customer_orders FOREIGN KEY (order_id) REFERENCES b2b_customer_orders (id) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
||||||
CONSTRAINT fk_orders_products_product FOREIGN KEY (product_id) REFERENCES ps_product (id_product) ON DELETE CASCADE ON UPDATE CASCADE
|
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_orders_products_order_id ON b2b_orders_products (order_id);
|
|
||||||
|
|
||||||
|
|
||||||
-- favorites
|
-- favorites
|
||||||
CREATE TABLE IF NOT EXISTS b2b_favorites (
|
CREATE TABLE IF NOT EXISTS b2b_favorites (
|
||||||
user_id BIGINT UNSIGNED NOT NULL,
|
user_id BIGINT UNSIGNED NOT NULL,
|
||||||
@@ -252,7 +224,7 @@ ON `b2b_countries` (
|
|||||||
CREATE TABLE IF NOT EXISTS b2b_addresses (
|
CREATE TABLE IF NOT EXISTS b2b_addresses (
|
||||||
id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL,
|
id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL,
|
||||||
b2b_customer_id BIGINT UNSIGNED NOT NULL,
|
b2b_customer_id BIGINT UNSIGNED NOT NULL,
|
||||||
address_info TEXT NOT NULL,
|
address_string TEXT NOT NULL,
|
||||||
b2b_country_id BIGINT UNSIGNED NOT NULL,
|
b2b_country_id BIGINT UNSIGNED NOT NULL,
|
||||||
PRIMARY KEY (id),
|
PRIMARY KEY (id),
|
||||||
CONSTRAINT fk_b2b_addresses_b2b_customers FOREIGN KEY (b2b_customer_id) REFERENCES b2b_customers (id) ON DELETE CASCADE ON UPDATE CASCADE,
|
CONSTRAINT fk_b2b_addresses_b2b_customers FOREIGN KEY (b2b_customer_id) REFERENCES b2b_customers (id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
@@ -260,6 +232,34 @@ CREATE TABLE IF NOT EXISTS b2b_addresses (
|
|||||||
) ENGINE = InnoDB;
|
) ENGINE = InnoDB;
|
||||||
|
|
||||||
|
|
||||||
|
-- customer_orders
|
||||||
|
CREATE TABLE IF NOT EXISTS b2b_customer_orders (
|
||||||
|
order_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
user_id BIGINT UNSIGNED NOT NULL,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
country_id BIGINT UNSIGNED NOT NULL,
|
||||||
|
address_string TEXT NOT NULL,
|
||||||
|
status VARCHAR(50) NOT NULL,
|
||||||
|
CONSTRAINT fk_customer_orders_customers FOREIGN KEY (user_id) REFERENCES b2b_customers(id) ON DELETE NO ACTION ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT fk_customer_orders_countries FOREIGN KEY (country_id) REFERENCES b2b_countries(id) ON DELETE NO ACTION ON UPDATE CASCADE
|
||||||
|
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
|
||||||
|
CREATE INDEX idx_customer_orders_user_id ON b2b_customer_orders (user_id);
|
||||||
|
CREATE INDEX idx_customer_orders_country_id ON b2b_customer_orders (country_id);
|
||||||
|
|
||||||
|
|
||||||
|
-- orders_products
|
||||||
|
CREATE TABLE IF NOT EXISTS b2b_orders_products (
|
||||||
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
order_id BIGINT UNSIGNED NOT NULL,
|
||||||
|
product_id INT UNSIGNED NOT NULL,
|
||||||
|
product_attribute_id INT NULL,
|
||||||
|
amount INT UNSIGNED NOT NULL,
|
||||||
|
CONSTRAINT fk_orders_products_customer_orders FOREIGN KEY (order_id) REFERENCES b2b_customer_orders (order_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT fk_orders_products_product FOREIGN KEY (product_id) REFERENCES ps_product (id_product) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_orders_products_order_id ON b2b_orders_products (order_id);
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE b2b_specific_price (
|
CREATE TABLE b2b_specific_price (
|
||||||
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||||
name VARCHAR(255) NOT NULL,
|
name VARCHAR(255) NOT NULL,
|
||||||
|
|||||||
Reference in New Issue
Block a user