diff --git a/packages/medusa-js/src/resources/admin/collections.ts b/packages/medusa-js/src/resources/admin/collections.ts index aa32900d04..1fdb34da14 100644 --- a/packages/medusa-js/src/resources/admin/collections.ts +++ b/packages/medusa-js/src/resources/admin/collections.ts @@ -51,7 +51,7 @@ class AdminCollectionsResource extends BaseResource { * @param id id of the collection to retrieve. * @returns the collection with the given id */ - retrieve(id: string): ResponsePromise { + retrieve(id: string): ResponsePromise { const path = `/admin/collections/${id}` return this.client.request("GET", path) } diff --git a/packages/medusa-js/src/resources/admin/index.ts b/packages/medusa-js/src/resources/admin/index.ts index 031937bfb7..64afafd509 100644 --- a/packages/medusa-js/src/resources/admin/index.ts +++ b/packages/medusa-js/src/resources/admin/index.ts @@ -12,6 +12,7 @@ import AdminReturnReasonsResource from "./return-reasons" import AdminVariantsResource from "./variants" import AdminSwapsResource from "./swaps" import AdminShippingProfilesResource from "./shipping-profiles" +import AdminShippingOptionsResource from "./shipping-options" import AdminRegionsResource from "./regions" class Admin extends BaseResource { @@ -28,6 +29,7 @@ class Admin extends BaseResource { public variants = new AdminVariantsResource(this.client) public swaps = new AdminSwapsResource(this.client) public shippingProfiles = new AdminShippingProfilesResource(this.client) + public shippingOptions = new AdminShippingOptionsResource(this.client) public regions = new AdminRegionsResource(this.client) } diff --git a/packages/medusa-js/src/resources/admin/shipping-options.ts b/packages/medusa-js/src/resources/admin/shipping-options.ts new file mode 100644 index 0000000000..f02b269fd3 --- /dev/null +++ b/packages/medusa-js/src/resources/admin/shipping-options.ts @@ -0,0 +1,80 @@ +import { + AdminPostShippingOptionsReq, + AdminShippingOptionsRes, + AdminPostShippingOptionsOptionReq, + AdminShippingOptionsDeleteRes, + AdminShippingOptionsListRes, + AdminGetShippingOptionsParams, +} from "@medusajs/medusa" +import { ResponsePromise } from "../../typings" +import BaseResource from "../base" + +class AdminShippingOptionsResource extends BaseResource { + /** + * @description creates a shipping option. + * @param payload + * @returns created shipping option. + */ + create( + payload: AdminPostShippingOptionsReq + ): ResponsePromise { + const path = `/admin/shipping-options` + return this.client.request("POST", path, payload) + } + + /** + * @description updates a shipping option + * @param id id of the shipping option to update. + * @param payload update to apply to shipping option. + * @returns the updated shipping option. + */ + update( + id: string, + payload: AdminPostShippingOptionsOptionReq + ): ResponsePromise { + const path = `/admin/shipping-options/${id}` + return this.client.request("POST", path, payload) + } + + /** + * @description deletes a shipping option + * @param id id of shipping option to delete. + * @returns deleted response + */ + delete(id: string): ResponsePromise { + const path = `/admin/shipping-options/${id}` + return this.client.request("DELETE", path) + } + + /** + * @description get a shipping option + * @param id id of the shipping option to retrieve. + * @returns the shipping option with the given id + */ + retrieve(id: string): ResponsePromise { + const path = `/admin/shipping-options/${id}` + return this.client.request("GET", path) + } + + /** + * @description lists shipping options matching a query + * @param query query for searching shipping options + * @returns a list of shipping options matching the query. + */ + list( + query?: AdminGetShippingOptionsParams + ): ResponsePromise { + let path = `/admin/shipping-options` + + if (query) { + const queryString = Object.entries(query).map(([key, value]) => { + return typeof value !== "undefined" ? `${key}=${value}` : "" + }) + path = `/admin/shipping-options?${queryString.join("&")}` + } + + return this.client.request("GET", path) + } +} + +export default AdminShippingOptionsResource diff --git a/packages/medusa/src/api/index.js b/packages/medusa/src/api/index.js index 6dfb04b4e1..d7027378cf 100644 --- a/packages/medusa/src/api/index.js +++ b/packages/medusa/src/api/index.js @@ -31,7 +31,9 @@ export * from "./routes/admin/orders" export * from "./routes/admin/variants" export * from "./routes/admin/return-reasons" export * from "./routes/admin/swaps" +export * from "./routes/admin/shipping-options" export * from "./routes/admin/regions" + // Store export * from "./routes/store/auth" export * from "./routes/store/carts"