Skip to main content
Version: 0.5.0 (Previous)

📧 Invitation Route Blocks

Invitation route blocks provide pre-configured HTTP endpoints for invitation 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

Invitation route blocks are designed to:

  • Provide complete API endpoints for invitation 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 invitation 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 Invitation Routes

createInvitationRoute

Creates a new invitation via POST /invitations.

Purpose: Handles invitation creation with email sending

Route Details:

  • Method: POST
  • Path: /invitations
  • Authentication: Required (Bearer token)

Handlers: createInvitation, getInvitationById, buildInvitationOnetimeTokenPayload, generateOnetimeToken, sendInvitationEmail, createInvitationTerminator

Validators: isAuthenticated, checkIdentityType(['admin'])

Usage:

import { routes } from '@nodeblocks/backend-sdk';

// Register route with Express app
app.use('/api', routes.createInvitationRoute);

findInvitationsRoute

Retrieves all invitations via GET /invitations.

Purpose: Lists invitations with pagination

Route Details:

  • Method: GET
  • Path: /invitations
  • Authentication: Required (Bearer token)

Handlers: findInvitations, normalizeInvitationsListTerminator

Validators: isAuthenticated, checkIdentityType(['admin'])

Usage:

import { routes } from '@nodeblocks/backend-sdk';

// Register route with Express app
app.use('/api', routes.findInvitationsRoute);

getInvitationByIdRoute

Retrieves a specific invitation by ID via GET /invitations/:invitationId.

Purpose: Fetches invitation data

Route Details:

  • Method: GET
  • Path: /invitations/:invitationId
  • Authentication: Required (Bearer token)

Handlers: getInvitationById, normalizeInvitationTerminator

Validators: isAuthenticated, checkIdentityType(['admin'])

Usage:

import { routes } from '@nodeblocks/backend-sdk';

// Register route with Express app
app.use('/api', routes.getInvitationByIdRoute);

deleteInvitationRoute

Deletes a specific invitation by ID via DELETE /invitations/:invitationId.

Purpose: Removes invitation

Route Details:

  • Method: DELETE
  • Path: /invitations/:invitationId
  • Authentication: Required (Bearer token)

Handlers: deleteInvitation, deleteInvitationTerminator

Validators: isAuthenticated, checkIdentityType(['admin'])

Usage:

import { routes } from '@nodeblocks/backend-sdk';

// Register route with Express app
app.use('/api', routes.deleteInvitationRoute);