fix: medusa-js admin endpoint types (#968)

This commit is contained in:
Zakaria El Asri
2022-01-07 11:44:59 +01:00
committed by GitHub
parent 0ac52b70fa
commit 7cc3640796
5 changed files with 50 additions and 14 deletions

View File

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

View File

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

View File

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

View File

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

View File

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