fix: medusa-js admin endpoint types (#968)
This commit is contained in:
@@ -3,6 +3,7 @@ import {
|
||||
AdminCustomersRes,
|
||||
AdminGetCustomersParams,
|
||||
AdminPostCustomersReq,
|
||||
AdminPostCustomersCustomerReq,
|
||||
} from "@medusajs/medusa"
|
||||
import { ResponsePromise } from "../.."
|
||||
import BaseResource from "../base"
|
||||
@@ -24,7 +25,7 @@ class AdminCustomersResource extends BaseResource {
|
||||
*/
|
||||
update(
|
||||
id: string,
|
||||
payload: AdminPostCustomersReq
|
||||
payload: AdminPostCustomersCustomerReq
|
||||
): ResponsePromise<AdminCustomersRes> {
|
||||
const path = `/admin/customers/${id}`
|
||||
return this.client.request("POST", path, payload)
|
||||
|
||||
@@ -29,7 +29,7 @@ class AdminDraftOrdersResource extends BaseResource {
|
||||
id: string,
|
||||
payload: AdminPostDraftOrdersDraftOrderLineItemsReq
|
||||
): ResponsePromise<AdminDraftOrdersRes> {
|
||||
const path = `/admin/draft-orders/${id}`
|
||||
const path = `/admin/draft-orders/${id}/line-items`
|
||||
return this.client.request("POST", path, payload)
|
||||
}
|
||||
|
||||
|
||||
@@ -2,9 +2,8 @@ import {
|
||||
AdminInviteDeleteRes,
|
||||
AdminListInvitesRes,
|
||||
AdminPostInvitesInviteAcceptReq,
|
||||
AdminPostInvitesReq,
|
||||
} from "@medusajs/medusa"
|
||||
import { ResponsePromise } from "../.."
|
||||
import { AdminPostInvitesPayload, ResponsePromise } from "../.."
|
||||
import BaseResource from "../base"
|
||||
|
||||
class AdminInvitesResource extends BaseResource {
|
||||
@@ -13,7 +12,7 @@ class AdminInvitesResource extends BaseResource {
|
||||
return this.client.request("POST", path, payload)
|
||||
}
|
||||
|
||||
create(payload: AdminPostInvitesReq): ResponsePromise {
|
||||
create(payload: AdminPostInvitesPayload): ResponsePromise {
|
||||
const path = `/admin/invites`
|
||||
return this.client.request("POST", path, payload)
|
||||
}
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
import {
|
||||
AdminResetPasswordTokenRequest,
|
||||
AdminResetPasswordRequest,
|
||||
AdminCreateUserRequest,
|
||||
AdminUpdateUserRequest,
|
||||
AdminUsersListRes,
|
||||
AdminUserRes,
|
||||
AdminDeleteUserRes,
|
||||
AdminResetPasswordRequest,
|
||||
AdminResetPasswordTokenRequest,
|
||||
AdminUserRes,
|
||||
AdminUsersListRes,
|
||||
} from "@medusajs/medusa"
|
||||
import { ResponsePromise } from "../.."
|
||||
import {
|
||||
ResponsePromise,
|
||||
AdminCreateUserPayload,
|
||||
AdminUpdateUserPayload,
|
||||
} from "../.."
|
||||
import BaseResource from "../base"
|
||||
|
||||
class AdminUsersResource extends BaseResource {
|
||||
@@ -50,7 +52,7 @@ class AdminUsersResource extends BaseResource {
|
||||
* @param payload user creation request body
|
||||
* @returns created user
|
||||
*/
|
||||
create(payload: AdminCreateUserRequest): ResponsePromise<AdminUserRes> {
|
||||
create(payload: AdminCreateUserPayload): ResponsePromise<AdminUserRes> {
|
||||
const path = `/admin/users`
|
||||
return this.client.request("POST", path, payload)
|
||||
}
|
||||
@@ -63,7 +65,7 @@ class AdminUsersResource extends BaseResource {
|
||||
*/
|
||||
update(
|
||||
id: string,
|
||||
payload: AdminUpdateUserRequest
|
||||
payload: AdminUpdateUserPayload
|
||||
): ResponsePromise<AdminUserRes> {
|
||||
const path = `/admin/users/${id}`
|
||||
return this.client.request("POST", path, payload)
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
import {
|
||||
AdminCreateUserRequest,
|
||||
AdminPostInvitesReq,
|
||||
AdminUpdateUserRequest,
|
||||
} from "@medusajs/medusa"
|
||||
|
||||
export interface HTTPResponse {
|
||||
status: number
|
||||
statusText: string
|
||||
@@ -13,3 +19,31 @@ export type Response<T> = T & {
|
||||
}
|
||||
|
||||
export type ResponsePromise<T = any> = Promise<Response<T>>
|
||||
|
||||
type NoUndefined<T> = T extends undefined ? never : T
|
||||
|
||||
type CreateUserRolesEnum = NoUndefined<AdminCreateUserRequest["role"]>
|
||||
|
||||
// convert Enum type to union of string literals
|
||||
export type CreateUserRoles = `${CreateUserRolesEnum}`
|
||||
|
||||
// remove enum type and replace with union type
|
||||
export type AdminCreateUserPayload =
|
||||
| Omit<AdminCreateUserRequest, "role">
|
||||
| {
|
||||
role?: CreateUserRoles
|
||||
}
|
||||
|
||||
type UpdateUserRolesEnum = NoUndefined<AdminUpdateUserRequest["role"]>
|
||||
|
||||
export type UpdateUserRoles = `${UpdateUserRolesEnum}`
|
||||
|
||||
export type AdminUpdateUserPayload = Omit<AdminUpdateUserRequest, "role"> & {
|
||||
role?: UpdateUserRoles
|
||||
}
|
||||
|
||||
export type InviteUserRolesEnum = `${AdminPostInvitesReq["role"]}`
|
||||
|
||||
export type AdminPostInvitesPayload = Omit<AdminPostInvitesReq, "role"> & {
|
||||
role: InviteUserRolesEnum
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user