Skip to main content
Version: 0.4.2 (Previous)

🏢 Organization Route Blocks

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

Organization route blocks are designed to:

  • Provide complete API endpoints for organization 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 organization 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 Organization Routes

createOrganizationRoute

Creates a new organization and returns the created resource.

Purpose: Handles organization creation with full resource retrieval

Route Details:

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

Handlers: createOrganization, getOrganizationById, normalizeOrganizationTerminator

Validators: verifyAuthentication(getBearerTokenInfo), validateResourceAccess(['admin'], getBearerTokenInfo)

Usage:

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

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

getOrganizationRoute

Retrieves a specific organization by ID.

Purpose: Fetches organization data with access control

Route Details:

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

Handlers: getOrganizationById, normalizeOrganizationTerminator

Validators: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner', 'admin', 'member'], getBearerTokenInfo)))

Usage:

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

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

findOrganizationsRoute

Retrieves all organizations with normalized list format.

Purpose: Lists organizations with pagination and access control

Route Details:

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

Handlers: findOrganizations, normalizeOrganizationsListTerminator

Validators: verifyAuthentication(getBearerTokenInfo), validateResourceAccess(['admin'], getBearerTokenInfo)

Usage:

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

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

updateOrganizationRoute

Updates an existing organization and returns the updated resource.

Purpose: Modifies organization data with access control

Route Details:

  • Method: PATCH
  • Path: /organizations/:organizationId
  • Authentication: Required (Bearer token)

Handlers: updateOrganization, getOrganizationById, normalizeOrganizationTerminator

Validators: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner'], getBearerTokenInfo)))

Usage:

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

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

deleteOrganizationRoute

Deletes an organization by ID.

Purpose: Removes organization with access control

Route Details:

  • Method: DELETE
  • Path: /organizations/:organizationId
  • Authentication: Required (Bearer token)

Handlers: deleteOrganization, deleteOrganizationTerminator

Validators: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner'], getBearerTokenInfo)))

Usage:

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

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

getOrganizationUserRoleRoute

Retrieves the role of a specific user within an organization.

Purpose: Fetches user role within organization

Route Details:

  • Method: GET
  • Path: /organizations/:organizationId/users/:userId/role
  • Authentication: Required (Bearer token)

Handlers: getOrganizationUserRole, normalizeOrganizationUserRoleTerminator

Validators: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner', 'admin'], getBearerTokenInfo)))

Usage:

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

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

checkOrganizationUserExistenceRoute

Checks if a user exists within an organization.

Purpose: Verifies user membership in organization

Route Details:

  • Method: GET
  • Path: /organizations/:organizationId/users/checkExistence
  • Authentication: Required (Bearer token)

Handlers: checkOrganizationUserExistence, normalizeOrganizationUserExistenceTerminator

Validators: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner', 'admin'], getBearerTokenInfo)))

Usage:

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

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

findOrganizationUsersRoute

Retrieves all users within an organization.

Purpose: Lists organization members

Route Details:

  • Method: GET
  • Path: /organizations/:organizationId/users
  • Authentication: Required (Bearer token)

Handlers: findOrganizationUsers, normalizeOrganizationUsersListTerminator

Validators: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner', 'admin'], getBearerTokenInfo)))

Usage:

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

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

upsertOrganizationUsersRoute

Creates or updates users within an organization.

Purpose: Manages organization user memberships

Route Details:

  • Method: PATCH
  • Path: /organizations/:organizationId/users
  • Authentication: Required (Bearer token)

Handlers: upsertOrganizationUsers, upsertOrganizationUsersTerminator

Validators: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner', 'admin'], getBearerTokenInfo)))

Usage:

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

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

deleteOrganizationUserRoute

Removes a user from an organization.

Purpose: Removes user from organization membership

Route Details:

  • Method: DELETE
  • Path: /organizations/:organizationId/users/:userId
  • Authentication: Required (Bearer token)

Handlers: deleteOrganizationUser, deleteOrganizationUserTerminator

Validators: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner', 'admin'], getBearerTokenInfo)))

Usage:

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

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

findOrganizationsForUserRoute

Retrieves all organizations for a specific user.

Purpose: Lists organizations where user is a member

Route Details:

  • Method: GET
  • Path: /users/:userId/organizations
  • Authentication: Required (Bearer token)

Handlers: findOrganizationsForUser, normalizeOrganizationsForUserTerminator

Validators: verifyAuthentication(getBearerTokenInfo), validateResourceAccess(['admin', 'self'], getBearerTokenInfo)

Usage:

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

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