Skip to main content
Version: 0.4.2 (Previous)

🛣️ 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);