feat(medusa-js, medusa-react, medusa): Prepare API for admin implementations (#3110)
********What********
Add `joinSalesChannels util to stock locations
Add the following endpoints to medusa-react
- inventory items
- mutations
- update
- delete
- update location level
- delete location level
- create location level
- queries
- list inventory items
- get inventory item
- list location levels
- Stock locations
- mutations
- create stock location
- update stock location
- delete stock location
- queries
- list stock locations
- get stock locatoin
- Variants
- queries
- get inventory
- Reservations
- mutations
- create reservation
- update reservation
- delete reservation
- queries
- list reservations
- get reservation
- sales channels
- mutations
- associate location with sc
- remove location association
**Why**
- Update clients to reflect new api endpoints in the core with inventory modules
Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com>
This commit is contained in:
co-authored by
Philip Korsholm
parent
121b42acfe
commit
12d304307a
@@ -1140,6 +1140,46 @@
|
||||
"updated_at": "2021-03-17 12:09:59.156058+01",
|
||||
"metadata": null
|
||||
},
|
||||
"inventory_item": {
|
||||
"id": "iitem_320ZXDBAB4WJVW6115VEM7",
|
||||
"sku": "sku123",
|
||||
"origin_country": "dk",
|
||||
"hs_code": null,
|
||||
"mid_code": null,
|
||||
"material": null,
|
||||
"weight": 10,
|
||||
"lenght": 4,
|
||||
"height": 5,
|
||||
"width": 2,
|
||||
"requires_shipping": true,
|
||||
"created_at": "2021-03-17 11:58:56.975971+01",
|
||||
"updated_at": "2021-03-17 12:09:59.156058+01",
|
||||
"metadata": null,
|
||||
"location_levels": [
|
||||
{
|
||||
"id": "ilev_320ZXDBAB4WJVW6115VEM7",
|
||||
"inventory_item_id": "iitem_320ZXDBAB4WJVW6115VEM7",
|
||||
"location_id": "loc_01F0ZXDBAB9KVZWJVW6115VEM7",
|
||||
"stocked_quantity": 1,
|
||||
"reserved_quantity": 0,
|
||||
"incoming_quantity": 10
|
||||
}
|
||||
]
|
||||
},
|
||||
"stock_location": {
|
||||
"id": "loc_01F0ZXDBAB9KVZWJVW6115VEM7",
|
||||
"name": "Stock location 1",
|
||||
"address_id": "addr_01F0ZXDBAB9KVZWJVW6115VEM7",
|
||||
"created_at": "2021-03-17 11:58:56.975971+01",
|
||||
"updated_at": "2021-03-17 12:09:59.156058+01"
|
||||
},
|
||||
"reservation": {
|
||||
"id": "res_01F0ZXDBAB9KVZWJVW6115VEM7",
|
||||
"line_item_id": "li_01F0ZXDBAB9KVZWJVW6115VEM7",
|
||||
"inventory_item_id": "iitem_320ZXDBAB4WJVW6115VEM7",
|
||||
"location_id": "loc_01F0ZXDBAB9KVZWJVW6115VEM7",
|
||||
"quantity": 1
|
||||
},
|
||||
"invite": {
|
||||
"id": "invite_320ZXDBAB4WJVW6115VEM7",
|
||||
"user_email": "lebron@james.com",
|
||||
|
||||
@@ -353,6 +353,61 @@ export const adminHandlers = [
|
||||
}
|
||||
),
|
||||
|
||||
rest.get("/admin/reservations/", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
reservations: fixtures.list("reservation"),
|
||||
})
|
||||
)
|
||||
}),
|
||||
rest.post("/admin/reservations/", (req, res, ctx) => {
|
||||
const body = req.body as Record<string, any>
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
reservation: {
|
||||
...fixtures.get("reservation"),
|
||||
...body,
|
||||
},
|
||||
})
|
||||
)
|
||||
}),
|
||||
rest.get("/admin/reservations/:id", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
reservation: { ...fixtures.get("reservation"), id: req.params.id },
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.post("/admin/reservations/:id", (req, res, ctx) => {
|
||||
const body = req.body as Record<string, any>
|
||||
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
reservation: {
|
||||
...fixtures.get("reservation"),
|
||||
...body,
|
||||
id: req.params.id,
|
||||
},
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.delete("/admin/reservations/:id", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
id: req.params.id,
|
||||
object: "reservation",
|
||||
deleted: true,
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.post("/admin/return-reasons/", (req, res, ctx) => {
|
||||
const body = req.body as Record<string, any>
|
||||
return res(
|
||||
@@ -465,6 +520,61 @@ export const adminHandlers = [
|
||||
)
|
||||
}),
|
||||
|
||||
rest.get("/admin/stock-locations", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
stock_locations: fixtures.list("stock_location"),
|
||||
})
|
||||
)
|
||||
}),
|
||||
rest.post("/admin/stock-locations", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
stock_location: {
|
||||
...fixtures.get("stock_location"),
|
||||
...(req.body as any),
|
||||
},
|
||||
})
|
||||
)
|
||||
}),
|
||||
rest.get("/admin/stock-locations/:id", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
stock_location: {
|
||||
...fixtures.get("stock_location"),
|
||||
id: req.params.id,
|
||||
},
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.post("/admin/stock-locations/:id", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
stock_location: {
|
||||
...fixtures.get("stock_location"),
|
||||
...(req.body as any),
|
||||
id: req.params.id,
|
||||
},
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.delete("/admin/stock-locations/:id", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
id: req.params.id,
|
||||
object: "stock_location",
|
||||
deleted: true,
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.get("/admin/notifications/", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
@@ -487,6 +597,112 @@ export const adminHandlers = [
|
||||
)
|
||||
}),
|
||||
|
||||
// inventory
|
||||
rest.get("/admin/inventory-items", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
inventory_items: fixtures.list("inventory_item"),
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.get("/admin/inventory-items/:id", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
inventory_item: fixtures.get("inventory_item"),
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.post("/admin/inventory-items/:id", (req, res, ctx) => {
|
||||
const body = req.body as Record<string, any>
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
inventory_item: {
|
||||
...fixtures.get("inventory_item"),
|
||||
...body,
|
||||
id: req.params.id,
|
||||
},
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.delete("/admin/inventory-items/:id", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
id: req.params.id,
|
||||
object: "inventory_item",
|
||||
deleted: true,
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.get("/admin/inventory-items/:id/location-levels", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
inventory_item: {
|
||||
...fixtures.get("inventory_item"),
|
||||
id: req.params.id,
|
||||
},
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.post("/admin/inventory-items/:id/location-levels", (req, res, ctx) => {
|
||||
const body = req.body as Record<string, any>
|
||||
const { location_levels } = fixtures.get("inventory_item")
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
inventory_item: {
|
||||
...fixtures.get("inventory_item"),
|
||||
id: req.params.id,
|
||||
location_levels: [...location_levels, { ...body, id: "2" }],
|
||||
},
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.post(
|
||||
"/admin/inventory-items/:id/location-levels/:location_id",
|
||||
(req, res, ctx) => {
|
||||
const body = req.body as Record<string, any>
|
||||
const inventoryItem = fixtures.get("inventory_item")
|
||||
const locationlevel = { ...inventoryItem.location_levels[0], ...body }
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
inventory_item: {
|
||||
...fixtures.get("inventory_item"),
|
||||
id: req.params.id,
|
||||
location_levels: [locationlevel],
|
||||
},
|
||||
})
|
||||
)
|
||||
}
|
||||
),
|
||||
|
||||
rest.delete(
|
||||
"/admin/inventory-items/:id/location-levels/:location_id",
|
||||
(req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
inventory_item: {
|
||||
...fixtures.get("inventory_item"),
|
||||
id: req.params.id,
|
||||
location_levels: [],
|
||||
},
|
||||
})
|
||||
)
|
||||
}
|
||||
),
|
||||
|
||||
rest.get("/admin/invites", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
@@ -1189,6 +1405,24 @@ export const adminHandlers = [
|
||||
)
|
||||
}),
|
||||
|
||||
rest.get("/admin/variants/:id/inventory", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
ctx.json({
|
||||
variant: {
|
||||
...fixtures.get("product_variant"),
|
||||
sales_channel_availability: [
|
||||
{
|
||||
channel_name: "default channel",
|
||||
channel_id: "1",
|
||||
available_quantity: 10,
|
||||
},
|
||||
],
|
||||
},
|
||||
})
|
||||
)
|
||||
}),
|
||||
|
||||
rest.get("/admin/users/:id", (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.status(200),
|
||||
|
||||
Reference in New Issue
Block a user