📧 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:
- Schema:
createInvitationSchema
- validates email and fromUserId required fields - Route:
createInvitationRoute
- POST/invitations
with invitation creation pipeline
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:
- Schema:
getInvitationSchema
- validates path parameters - Route:
getInvitationByIdRoute
- GET/invitations/:id
with retrieval handler
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:
- Schema:
findInvitationsSchema
- validates query parameters for filtering - Route:
findInvitationsRoute
- GET/invitations
with search and pagination
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:
- Schema:
deleteInvitationSchema
- validates path parameters - Route:
deleteInvitationRoute
- DELETE/invitations/:invitationId
with deletion pipeline
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