Skip to main content
Version: 0.5.0 (Previous)

📧 Invitation Feature Blocks

Invitation feature blocks provide complete, pre-composed functionality for invitation management operations in Nodeblocks applications. These features combine schemas, routes, and handlers to create ready-to-use API endpoints for invitation creation, retrieval, search, and deletion with email processing.


🎯 Overview

Invitation feature blocks are designed to:

  • Provide complete invitation workflows for user invitations
  • Combine schemas with routes for validated invitation operations
  • Include email processing and token generation automatically
  • Support invitation lifecycle management (create, retrieve, delete)
  • Handle invitation search and filtering capabilities

📋 Feature Structure

Each invitation feature follows a consistent composition pattern:

  • Schema: Validates invitation input data and parameters
  • Route: Provides HTTP endpoint with invitation handlers
  • Composition: Combines schema and route using compose function

🔧 Available Invitation Features

createInvitationFeature

Creates new invitations with email processing and token generation.

Purpose: Handles invitation creation with complete validation and email sending

Composition:

Usage:

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


// With database configuration
app.use('/api', defService(partial(features.createInvitationFeature, [{ dataStores: db }])));

API Endpoint: POST /api/invitations


getInvitationFeature

Retrieves individual invitation data with validation.

Purpose: Fetches invitation information with proper validation

Composition:

Usage:

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


// With database configuration
app.use('/api', defService(partial(features.getInvitationFeature, [{ dataStores: db }])));

API Endpoint: GET /api/invitations/:invitationId


findInvitationsFeature

Searches and lists invitations with filtering and pagination.

Purpose: Provides invitation listing with search capabilities

Composition:

Usage:

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


// With database configuration
app.use('/api', defService(partial(features.findInvitationsFeature, [{ dataStores: db }])));

API Endpoint: GET /api/invitations


deleteInvitationFeature

Deletes invitations with proper validation and cleanup.

Purpose: Removes invitations with access control and cleanup

Composition:

Usage:

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


// With database configuration
app.use('/api', defService(partial(features.deleteInvitationFeature, [{ dataStores: db }])));

API Endpoint: DELETE /api/invitations/:invitationId