🏢 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);