Skip to main content
Version: 0.4.2 (Previous)

🏢 Organization Feature Blocks

Organization feature blocks provide complete, pre-composed functionality for organization management operations in Nodeblocks applications. These features combine schemas, routes, and handlers to create ready-to-use API endpoints for organization CRUD operations, user management, and membership handling.


🎯 Overview

Organization feature blocks are designed to:

  • Provide complete organization management with full CRUD operations
  • Support user membership and role management within organizations
  • Include validation and routing for secure organization operations
  • Support filtering and pagination for organization and user listings
  • Handle organization-user relationships and access control

📋 Feature Structure

Each organization feature follows a consistent composition pattern:

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

🔧 Available Organization Features

createOrganizationFeature

Organization creation feature with schema validation and routing.

Purpose: Handles organization creation with complete validation

Composition:

Usage:

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


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

API Endpoint: POST /api/organizations


getOrganizationFeatures

Organization retrieval feature for getting individual organization data.

Purpose: Fetches organization information with proper validation

Composition:

Usage:

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


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

API Endpoint: GET /api/organizations/:organizationId


findOrganizationsFeatures

Organization search feature with filtering and pagination.

Purpose: Provides organization listing with search capabilities

Composition:

Usage:

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


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

API Endpoint: GET /api/organizations


editOrganizationFeatures

Organization update feature with schema validation and routing.

Purpose: Modifies organization information with proper validation

Composition:

Usage:

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


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

API Endpoint: PUT /api/organizations/:organizationId


deleteOrganizationFeatures

Organization deletion feature with routing.

Purpose: Removes organizations with access control and cleanup

Composition:

Usage:

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


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

API Endpoint: DELETE /api/organizations/:organizationId


getOrganizationUserFeatures

Organization user role retrieval feature for getting user roles within organizations.

Purpose: Retrieves user roles within specific organizations

Composition:

Usage:

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


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

API Endpoint: GET /api/organizations/:organizationId/users/:userId/role


checkOrganizationUserExistenceFeatures

Organization user existence check feature for validating user membership.

Purpose: Validates user membership in organizations

Composition:

Usage:

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


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

API Endpoint: GET /api/organizations/:organizationId/users/:userId/exists


findOrganizationUsersFeatures

Organization users search feature with filtering and pagination.

Purpose: Provides organization user listing with search capabilities

Composition:

Usage:

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


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

API Endpoint: GET /api/organizations/:organizationId/users


findOrganizationsForUserFeatures

User organizations search feature for finding organizations by user ID.

Purpose: Finds organizations associated with a specific user

Composition:

Usage:

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


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

API Endpoint: GET /api/users/:userId/organizations


editOrganizationUsersFeatures

Organization user management feature with schema validation for upserting users.

Purpose: Manages user membership and roles within organizations

Composition:

Usage:

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


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

API Endpoint: PUT /api/organizations/:organizationId/users


deleteOrganizationUserFeatures

Organization user deletion feature with routing.

Purpose: Removes users from organizations with proper cleanup

Composition:

Usage:

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


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

API Endpoint: DELETE /api/organizations/:organizationId/users/:userId