feat: Adds Customer Admin routes to JS client (#918)

This commit is contained in:
Oliver Windall Juhl
2021-12-13 21:32:47 +01:00
committed by GitHub
parent 5c47184b10
commit 25fe224a10
4 changed files with 73 additions and 0 deletions

View File

@@ -41,6 +41,13 @@ module.exports = {
"valid-jsdoc": ["off"],
},
},
{
// Medusa JS client
files: ["**/medusa-js/**/resources/**/*.ts"],
rules: {
"valid-jsdoc": ["off"],
},
},
{
files: ["**/api/**/*.ts"],
rules: {

View File

@@ -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

View File

@@ -1,8 +1,10 @@
import BaseResource from "../base"
import AdminAuthResource from "./auth"
import AdminCustomersResource from "./customers"
class Admin extends BaseResource {
public auth = new AdminAuthResource(this.client)
public customers = new AdminCustomersResource(this.client)
}
export default Admin

View File

@@ -16,6 +16,7 @@ export default (container, config) => {
}
export * from "./routes/admin/auth"
export * from "./routes/admin/customers"
export * from "./routes/admin/notifications"
export * from "./routes/admin/store"
export * from "./routes/admin/variants"