forked from mengyxu/noob-components
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.4 KiB
2.4 KiB
User API
plugs/api/user.ts- User CRUD operations.
Overview
User management API with standard CRUD plus password reset functionality.
Endpoint
- Root:
user
Exports
| Function | HTTP | Description |
|---|---|---|
list |
GET | List users with optional filter |
add |
POST | Create new user |
set |
PUT | Update existing user |
del |
DELETE | Delete user by userId |
updatePwd |
PUT | Update user password |
reset |
PUT | Reset user password |
Functions
list
export const list = (example) => {
return queryList(root, example);
};
- Uses:
queryListfrom base - Parameters:
example- Filter criteria (optional)
add
export const add = (user) => {
return save(root, user);
};
- Uses:
savefrom base (POST) - Parameters:
user- User object to create
set
export const set = (user) => {
return update(root, user);
};
- Uses:
updatefrom base (PUT) - Parameters:
user- User object to update
del
export const del = (user) => {
return deleteById(root, user.userId);
};
- Uses:
deleteByIdfrom base (DELETE) - ID Field:
user.userId - Note: Pass the full user object, extracts
userId
updatePwd
export const updatePwd = (pwd) => {
return update(pwdUrl, pwd);
};
- URL:
user/password(separate endpoint) - Uses:
updatefrom base (PUT) - Parameters:
pwd- Password change payload
reset
export const reset = (user) => {
return update(root + '/' + user.userId, {});
};
- URL:
user/{userId}with empty body - Uses:
updatefrom base (PUT) - Purpose: Admin password reset
Usage Example
import { user } from 'plugs/api';
// List users
const users = await user.list({ status: 1 });
// Add user
await user.add({ username: 'john', email: 'john@example.com' });
// Update user
await user.set({ userId: 123, username: 'johnny' });
// Delete user
await user.del({ userId: 123 });
// Change password
await user.updatePwd({ oldPwd: '...', newPwd: '...' });
// Reset user password (admin)
await user.reset({ userId: 123 });
Anti-Patterns
delrequires full object - Must pass{ userId: ... }not just the IDresetuses empty object - Unclear why empty{}is sent as PUT body