diff --git a/packages/medusa-js/src/resources/admin/customers.ts b/packages/medusa-js/src/resources/admin/customers.ts index 631470ab90..0d4aa3d44d 100644 --- a/packages/medusa-js/src/resources/admin/customers.ts +++ b/packages/medusa-js/src/resources/admin/customers.ts @@ -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 { const path = `/admin/customers/${id}` return this.client.request("POST", path, payload) diff --git a/packages/medusa-js/src/resources/admin/draft-orders.ts b/packages/medusa-js/src/resources/admin/draft-orders.ts index a1019e2e9a..4f8b5a0028 100644 --- a/packages/medusa-js/src/resources/admin/draft-orders.ts +++ b/packages/medusa-js/src/resources/admin/draft-orders.ts @@ -29,7 +29,7 @@ class AdminDraftOrdersResource extends BaseResource { id: string, payload: AdminPostDraftOrdersDraftOrderLineItemsReq ): ResponsePromise { - const path = `/admin/draft-orders/${id}` + const path = `/admin/draft-orders/${id}/line-items` return this.client.request("POST", path, payload) } diff --git a/packages/medusa-js/src/resources/admin/invites.ts b/packages/medusa-js/src/resources/admin/invites.ts index 6affbda680..ceee73191a 100644 --- a/packages/medusa-js/src/resources/admin/invites.ts +++ b/packages/medusa-js/src/resources/admin/invites.ts @@ -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) } diff --git a/packages/medusa-js/src/resources/admin/users.ts b/packages/medusa-js/src/resources/admin/users.ts index 8b5595c8ea..07a5b78dbd 100644 --- a/packages/medusa-js/src/resources/admin/users.ts +++ b/packages/medusa-js/src/resources/admin/users.ts @@ -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 { + create(payload: AdminCreateUserPayload): ResponsePromise { 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 { const path = `/admin/users/${id}` return this.client.request("POST", path, payload) diff --git a/packages/medusa-js/src/typings.ts b/packages/medusa-js/src/typings.ts index 113ccb67f3..63f46f3a47 100644 --- a/packages/medusa-js/src/typings.ts +++ b/packages/medusa-js/src/typings.ts @@ -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 & { } export type ResponsePromise = Promise> + +type NoUndefined = T extends undefined ? never : T + +type CreateUserRolesEnum = NoUndefined + +// convert Enum type to union of string literals +export type CreateUserRoles = `${CreateUserRolesEnum}` + +// remove enum type and replace with union type +export type AdminCreateUserPayload = + | Omit + | { + role?: CreateUserRoles + } + +type UpdateUserRolesEnum = NoUndefined + +export type UpdateUserRoles = `${UpdateUserRolesEnum}` + +export type AdminUpdateUserPayload = Omit & { + role?: UpdateUserRoles +} + +export type InviteUserRolesEnum = `${AdminPostInvitesReq["role"]}` + +export type AdminPostInvitesPayload = Omit & { + role: InviteUserRolesEnum +}