feat: Adds Customer Admin routes to JS client (#918)
This commit is contained in:
@@ -41,6 +41,13 @@ module.exports = {
|
|||||||
"valid-jsdoc": ["off"],
|
"valid-jsdoc": ["off"],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
// Medusa JS client
|
||||||
|
files: ["**/medusa-js/**/resources/**/*.ts"],
|
||||||
|
rules: {
|
||||||
|
"valid-jsdoc": ["off"],
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
files: ["**/api/**/*.ts"],
|
files: ["**/api/**/*.ts"],
|
||||||
rules: {
|
rules: {
|
||||||
|
|||||||
@@ -0,0 +1,63 @@
|
|||||||
|
import {
|
||||||
|
AdminCustomersListRes,
|
||||||
|
AdminCustomersRes,
|
||||||
|
AdminGetCustomersParams,
|
||||||
|
AdminPostCustomersReq,
|
||||||
|
} from "@medusajs/medusa"
|
||||||
|
import { ResponsePromise } from "../.."
|
||||||
|
import BaseResource from "../base"
|
||||||
|
|
||||||
|
class AdminCustomersResource extends BaseResource {
|
||||||
|
/**
|
||||||
|
* Creates a customer
|
||||||
|
* @param payload information of customer
|
||||||
|
*/
|
||||||
|
create(payload: AdminPostCustomersReq): ResponsePromise<AdminCustomersRes> {
|
||||||
|
const path = `/admin/customers`
|
||||||
|
return this.client.request("POST", path, payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates a customer
|
||||||
|
* @param id customer id
|
||||||
|
* @param payload data to update customer with
|
||||||
|
*/
|
||||||
|
update(
|
||||||
|
id: string,
|
||||||
|
payload: AdminPostCustomersReq
|
||||||
|
): ResponsePromise<AdminCustomersRes> {
|
||||||
|
const path = `/admin/customers/${id}`
|
||||||
|
return this.client.request("POST", path, payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves a customer
|
||||||
|
* @param id customer id
|
||||||
|
*/
|
||||||
|
retrieve(id: string): ResponsePromise<AdminCustomersRes> {
|
||||||
|
const path = `/admin/customers/${id}`
|
||||||
|
return this.client.request("GET", path)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lists customers
|
||||||
|
* @param query optional
|
||||||
|
*/
|
||||||
|
list(
|
||||||
|
query?: AdminGetCustomersParams
|
||||||
|
): ResponsePromise<AdminCustomersListRes> {
|
||||||
|
let path = `/admin/customers`
|
||||||
|
|
||||||
|
if (query) {
|
||||||
|
const queryString = Object.entries(query).map(([key, value]) => {
|
||||||
|
return `${key}=${value}`
|
||||||
|
})
|
||||||
|
|
||||||
|
path = `/admin/customers?${queryString.join("&")}`
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.client.request("GET", path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default AdminCustomersResource
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
import BaseResource from "../base"
|
import BaseResource from "../base"
|
||||||
import AdminAuthResource from "./auth"
|
import AdminAuthResource from "./auth"
|
||||||
|
import AdminCustomersResource from "./customers"
|
||||||
|
|
||||||
class Admin extends BaseResource {
|
class Admin extends BaseResource {
|
||||||
public auth = new AdminAuthResource(this.client)
|
public auth = new AdminAuthResource(this.client)
|
||||||
|
public customers = new AdminCustomersResource(this.client)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Admin
|
export default Admin
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ export default (container, config) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export * from "./routes/admin/auth"
|
export * from "./routes/admin/auth"
|
||||||
|
export * from "./routes/admin/customers"
|
||||||
export * from "./routes/admin/notifications"
|
export * from "./routes/admin/notifications"
|
||||||
export * from "./routes/admin/store"
|
export * from "./routes/admin/store"
|
||||||
export * from "./routes/admin/variants"
|
export * from "./routes/admin/variants"
|
||||||
|
|||||||
Reference in New Issue
Block a user