fix(medusa): Implement listAndCount for UserService and update list endpoint (#6190)
This commit is contained in:
@@ -1,37 +1,38 @@
|
||||
import {
|
||||
AdminDeleteUserRes,
|
||||
AdminGetUsersParams,
|
||||
AdminResetPasswordRequest,
|
||||
AdminResetPasswordTokenRequest,
|
||||
AdminUserRes,
|
||||
AdminUsersListRes,
|
||||
} from "@medusajs/medusa"
|
||||
import qs from "qs"
|
||||
import {
|
||||
ResponsePromise,
|
||||
AdminCreateUserPayload,
|
||||
AdminUpdateUserPayload,
|
||||
ResponsePromise,
|
||||
} from "../.."
|
||||
import BaseResource from "../base"
|
||||
|
||||
/**
|
||||
* This class is used to send requests to [Admin User API Routes](https://docs.medusajs.com/api/admin#users). All its method
|
||||
* are available in the JS Client under the `medusa.admin.users` property.
|
||||
*
|
||||
*
|
||||
* All methods in this class require {@link AdminAuthResource.createSession | user authentication}.
|
||||
*
|
||||
*
|
||||
* A store can have more than one user, each having the same privileges. Admins can manage users, their passwords, and more.
|
||||
*
|
||||
*
|
||||
* Related Guide: [How to manage users](https://docs.medusajs.com/modules/users/admin/manage-users).
|
||||
*/
|
||||
class AdminUsersResource extends BaseResource {
|
||||
|
||||
/**
|
||||
* Generate a password token for an admin user with a given email. This also triggers the `user.password_reset` event. So, if you have a Notification Service installed
|
||||
* that can handle this event, a notification, such as an email, will be sent to the user. The token is triggered as part of the `user.password_reset` event's payload.
|
||||
* that can handle this event, a notification, such as an email, will be sent to the user. The token is triggered as part of the `user.password_reset` event's payload.
|
||||
* That token must be used later to reset the password using the {@link resetPassword} method.
|
||||
* @param {AdminResetPasswordTokenRequest} payload - The user's reset details.
|
||||
* @param {Record<string, any>} customHeaders - Custom headers to attach to the request.
|
||||
* @returns {ResponsePromise<void>} Resolves when the token is generated successfully.
|
||||
*
|
||||
*
|
||||
* @example
|
||||
* import Medusa from "@medusajs/medusa-js"
|
||||
* const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
|
||||
@@ -60,7 +61,7 @@ class AdminUsersResource extends BaseResource {
|
||||
* @param {AdminResetPasswordRequest} payload - The reset details.
|
||||
* @param {Record<string, any>} customHeaders - Custom headers to attach to the request.
|
||||
* @returns {ResponsePromise<AdminUserRes>} Resolves to the user's details.
|
||||
*
|
||||
*
|
||||
* @example
|
||||
* import Medusa from "@medusajs/medusa-js"
|
||||
* const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
|
||||
@@ -86,7 +87,7 @@ class AdminUsersResource extends BaseResource {
|
||||
* @param {string} id - The user's ID.
|
||||
* @param {Record<string, any>} customHeaders - Custom headers to attach to the request.
|
||||
* @returns {ResponsePromise<AdminUserRes>} Resolves to the user's details.
|
||||
*
|
||||
*
|
||||
* @example
|
||||
* import Medusa from "@medusajs/medusa-js"
|
||||
* const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
|
||||
@@ -109,7 +110,7 @@ class AdminUsersResource extends BaseResource {
|
||||
* @param {AdminCreateUserPayload} payload - The user to create.
|
||||
* @param {Record<string, any>} customHeaders - Custom headers to attach to the request.
|
||||
* @returns {ResponsePromise<AdminUserRes>} Resolves to the user's details.
|
||||
*
|
||||
*
|
||||
* @example
|
||||
* import Medusa from "@medusajs/medusa-js"
|
||||
* const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
|
||||
@@ -136,7 +137,7 @@ class AdminUsersResource extends BaseResource {
|
||||
* @param {AdminUpdateUserPayload} payload - The attributes to update in the user.
|
||||
* @param {Record<string, any>} customHeaders - Custom headers to attach to the request.
|
||||
* @returns {ResponsePromise<AdminUserRes>} Resolves to the user's details.
|
||||
*
|
||||
*
|
||||
* @example
|
||||
* import Medusa from "@medusajs/medusa-js"
|
||||
* const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
|
||||
@@ -162,7 +163,7 @@ class AdminUsersResource extends BaseResource {
|
||||
* @param {string} id - The user's ID.
|
||||
* @param {Record<string, any>} customHeaders - Custom headers to attach to the request.
|
||||
* @returns {ResponsePromise<AdminDeleteUserRes>} Resolves to the deletion operation's details.
|
||||
*
|
||||
*
|
||||
* @example
|
||||
* import Medusa from "@medusajs/medusa-js"
|
||||
* const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
|
||||
@@ -184,8 +185,10 @@ class AdminUsersResource extends BaseResource {
|
||||
* Retrieve all admin users.
|
||||
* @param {Record<string, any>} customHeaders - Custom headers to attach to the request.
|
||||
* @returns {ResponsePromise<AdminUsersListRes>} Resolves to the list of users.
|
||||
*
|
||||
*
|
||||
* @example
|
||||
* To list users:
|
||||
*
|
||||
* import Medusa from "@medusajs/medusa-js"
|
||||
* const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
|
||||
* // must be previously logged in or use api token
|
||||
@@ -193,11 +196,33 @@ class AdminUsersResource extends BaseResource {
|
||||
* .then(({ users }) => {
|
||||
* console.log(users.length);
|
||||
* })
|
||||
*
|
||||
* By default, only the first `20` users are returned. You can control pagination by specifying the `limit` and `offset` properties:
|
||||
*
|
||||
* ```ts
|
||||
* import Medusa from "@medusajs/medusa-js"
|
||||
* const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
|
||||
* // must be previously logged in or use api token
|
||||
* medusa.admin.users.list({
|
||||
* limit,
|
||||
* offset
|
||||
* })
|
||||
* .then(({ users, limit, offset, count }) => {
|
||||
* console.log(users.length);
|
||||
* })
|
||||
* ```
|
||||
*/
|
||||
list(
|
||||
query?: AdminGetUsersParams,
|
||||
customHeaders: Record<string, any> = {}
|
||||
): ResponsePromise<AdminUsersListRes> {
|
||||
const path = `/admin/users`
|
||||
let path = `/admin/users`
|
||||
|
||||
if (query) {
|
||||
const queryString = qs.stringify(query)
|
||||
path += `?${queryString}`
|
||||
}
|
||||
|
||||
return this.client.request("GET", path, undefined, {}, customHeaders)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user