🛣️ User Route Blocks
User route blocks provide pre-configured HTTP endpoints for user management operations in Nodeblocks applications. These routes combine handlers, validators, and middleware to create complete API endpoints with proper authentication, authorization, and error handling.
🎯 Overview
User route blocks are designed to:
- Provide complete API endpoints for user management operations
- Combine handlers with validators for secure operations
- Include authentication and authorization checks
- Support functional composition patterns
- Handle logging and error management automatically
📋 Route Structure
Each user route follows a consistent pattern:
- HTTP Method: Defines the operation type (GET, POST, PATCH, DELETE)
- Path: Specifies the endpoint URL with parameters
- Handler: Composed function chain for business logic
- Validators: Authentication and authorization checks
🔧 Available User Routes
createUserRoute
Creates a new user and returns the created resource.
Purpose: Handles user registration
Route Details:
- Method:
POST
- Path:
/users
- Authentication: Required (Bearer token)
Handlers: createUser
, getUserById
, normalizeUserTerminator
Validators: verifyAuthentication
(getBearerTokenInfo)
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.createUserRoute);
getUserRoute
Retrieves a specific user by ID.
Purpose: Fetches user profile data with access control
Route Details:
- Method:
GET
- Path:
/users/:userId
- Authentication: Required (Bearer token)
Handlers: getUserById
, normalizeUserTerminator
Validators: verifyAuthentication
(getBearerTokenInfo), validateUserProfileAccess
(['admin', 'self'], getBearerTokenInfo)
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.getUserRoute);
findUsersRoute
Retrieves all users with normalized list format.
Purpose: Lists users with pagination and admin-only access
Route Details:
- Method:
GET
- Path:
/users
- Authentication: Required (Bearer token)
Handlers: findUsers
, normalizeUsersListTerminator
Validators: verifyAuthentication
(getBearerTokenInfo), validateUserProfileAccess
(['admin'], getBearerTokenInfo)
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.findUsersRoute);
updateUserRoute
Updates an existing user and returns the updated resource.
Purpose: Modifies user data with access control
Route Details:
- Method:
PATCH
- Path:
/users/:userId
- Authentication: Required (Bearer token)
Handlers: updateUser
, getUserById
, normalizeUserTerminator
Validators: verifyAuthentication
(getBearerTokenInfo), validateUserProfileAccess
(['admin', 'self'], getBearerTokenInfo)
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.updateUserRoute);
deleteUserRoute
Deletes a user by ID.
Purpose: Removes user account with access control
Route Details:
- Method:
DELETE
- Path:
/users/:userId
- Authentication: Required (Bearer token)
Handlers: deleteUser
, deleteUserTerminator
Validators: verifyAuthentication
(getBearerTokenInfo), validateUserProfileAccess
(['admin', 'self'], getBearerTokenInfo)
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.deleteUserRoute);
lockUserRoute
Locks a user account to prevent access.
Purpose: Disables user account access (admin only)
Route Details:
- Method:
POST
- Path:
/users/:userId/lock
- Authentication: Required (Bearer token)
Handlers: lockUser
, lockUserTerminator
Validators: verifyAuthentication
(getBearerTokenInfo), validateUserProfileAccess
(['admin', 'self'], getBearerTokenInfo)
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.lockUserRoute);
unlockUserRoute
Unlocks a user account to restore access.
Purpose: Enables user account access (admin only)
Route Details:
- Method:
POST
- Path:
/users/:userId/unlock
- Authentication: Required (Bearer token)
Handlers: unlockUser
, unlockUserTerminator
Validators: verifyAuthentication
(getBearerTokenInfo), validateUserProfileAccess
(['admin', 'self'], getBearerTokenInfo)
Usage:
import { routes } from '@nodeblocks/backend-sdk';
// Register route with Express app
app.use('/api', routes.unlockUserRoute);