メインコンテンツまでスキップ
バージョン: 0.4.2

🏢 組織ルートブロック

組織ルートブロックは、Nodeblocksアプリケーションにおける組織管理操作のための事前設定されたHTTPエンドポイントを提供します。これらのルートは、ハンドラー、バリデーター、ミドルウェアを組み合わせて、適切な認証、認可、エラー処理を備えた完全なAPIエンドポイントを作成します。


🎯 概要

組織ルートブロックは以下を目的として設計されています:

  • 組織管理操作のための完全なAPIエンドポイントの提供
  • 安全な操作のためのハンドラーとバリデーターの組み合わせ
  • 認証と認可チェックの包含
  • 関数コンポジションパターンのサポート
  • ログとエラー管理の自動処理

📋 ルート構造

各組織ルートは一貫したパターンに従います:

  • HTTPメソッド: 操作タイプを定義(GET、POST、PATCH、DELETE)
  • パス: パラメータを含むエンドポイントURLを指定
  • ハンドラー: ビジネスロジック用のコンポーズされた関数チェーン
  • バリデーター: 認証と認可のチェック

🔧 利用可能な組織ルート

createOrganizationRoute

新しい組織を作成し、作成されたリソースを返します。

目的: 完全なリソース取得による組織作成を処理

ルート詳細:

  • メソッド: POST
  • パス: /organizations
  • 認証: 必須(Bearerトークン)

ハンドラー: createOrganization, getOrganizationById, normalizeOrganizationTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), validateResourceAccess(['admin'], getBearerTokenInfo)

使用方法:

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

// Expressアプリでルートを登録
app.use('/api', routes.createOrganizationRoute);

getOrganizationRoute

IDで特定の組織を取得します。

目的: アクセス制御による組織データの取得

ルート詳細:

  • メソッド: GET
  • パス: /organizations/:organizationId
  • 認証: 必須(Bearerトークン)

ハンドラー: getOrganizationById, normalizeOrganizationTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner', 'admin', 'member'], getBearerTokenInfo)))

使用方法:

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

// Expressアプリでルートを登録
app.use('/api', routes.getOrganizationRoute);

findOrganizationsRoute

正規化されたリストフォーマットですべての組織を取得します。

目的: ページネーションとアクセス制御による組織リスト

ルート詳細:

  • メソッド: GET
  • パス: /organizations
  • 認証: 必須(Bearerトークン)

ハンドラー: findOrganizations, normalizeOrganizationsListTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), validateResourceAccess(['admin'], getBearerTokenInfo)

使用方法:

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

// Expressアプリでルートを登録
app.use('/api', routes.findOrganizationsRoute);

updateOrganizationRoute

既存の組織を更新し、更新されたリソースを返します。

目的: アクセス制御による組織データの変更

ルート詳細:

  • メソッド: PATCH
  • パス: /organizations/:organizationId
  • 認証: 必須(Bearerトークン)

ハンドラー: updateOrganization, getOrganizationById, normalizeOrganizationTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner', 'admin'], getBearerTokenInfo)))

使用方法:

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

// Expressアプリでルートを登録
app.use('/api', routes.updateOrganizationRoute);

deleteOrganizationRoute

IDで組織を削除します。

目的: アクセス制御による組織の削除

ルート詳細:

  • メソッド: DELETE
  • パス: /organizations/:organizationId
  • 認証: 必須(Bearerトークン)

ハンドラー: deleteOrganization, deleteOrganizationTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner'], getBearerTokenInfo)))

使用方法:

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

// Expressアプリでルートを登録
app.use('/api', routes.deleteOrganizationRoute);

📋 ルートパターン

認証要件

すべての組織ルートは有効なBearerトークンによる認証が必要です。

アクセス制御

組織ルートは以下のアクセスレベルをサポートします:

  • owner: 組織の所有者アクセス
  • admin: 管理者レベルアクセス
  • member: 組織メンバーアクセス

エラー処理

すべてのルートには自動エラー処理とログが含まれています。


getOrganizationUserRoleRoute

組織内での特定のユーザーの役割を取得します。

目的: 組織内でのユーザー役割を取得

ルート詳細:

  • メソッド: GET
  • パス: /organizations/:organizationId/users/:userId/role
  • 認証: 必須(Bearerトークン)

ハンドラー: getOrganizationUserRole, normalizeOrganizationUserRoleTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner', 'admin'], getBearerTokenInfo)))

使用方法:

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

// Expressアプリでルートを登録
app.use('/api', routes.getOrganizationUserRoleRoute);

checkOrganizationUserExistenceRoute

組織内にユーザーが存在するかをチェックします。

目的: 組織内でのユーザーメンバーシップを検証

ルート詳細:

  • メソッド: GET
  • パス: /organizations/:organizationId/users/checkExistence
  • 認証: 必須(Bearerトークン)

ハンドラー: checkOrganizationUserExistence, normalizeOrganizationUserExistenceTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner', 'admin'], getBearerTokenInfo)))

使用方法:

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

// Expressアプリでルートを登録
app.use('/api', routes.checkOrganizationUserExistenceRoute);

findOrganizationUsersRoute

組織内のすべてのユーザーを取得します。

目的: 組織メンバーをリスト

ルート詳細:

  • メソッド: GET
  • パス: /organizations/:organizationId/users
  • 認証: 必須(Bearerトークン)

ハンドラー: findOrganizationUsers, normalizeOrganizationUsersListTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner', 'admin'], getBearerTokenInfo)))

使用方法:

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

// Expressアプリでルートを登録
app.use('/api', routes.findOrganizationUsersRoute);

upsertOrganizationUsersRoute

組織内でユーザーを作成または更新します。

目的: 組織ユーザーメンバーシップを管理

ルート詳細:

  • メソッド: PATCH
  • パス: /organizations/:organizationId/users
  • 認証: 必須(Bearerトークン)

ハンドラー: upsertOrganizationUsers, upsertOrganizationUsersTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner', 'admin'], getBearerTokenInfo)))

使用方法:

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

// Expressアプリでルートを登録
app.use('/api', routes.upsertOrganizationUsersRoute);

deleteOrganizationUserRoute

組織からユーザーを削除します。

目的: 組織メンバーシップからユーザーを削除

ルート詳細:

  • メソッド: DELETE
  • パス: /organizations/:organizationId/users/:userId
  • 認証: 必須(Bearerトークン)

ハンドラー: deleteOrganizationUser, deleteOrganizationUserTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), some(validateResourceAccess(['admin'], getBearerTokenInfo), validateOrganizationAccess(['owner', 'admin'], getBearerTokenInfo)))

使用方法:

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

// Expressアプリでルートを登録
app.use('/api', routes.deleteOrganizationUserRoute);

findOrganizationsForUserRoute

特定のユーザーのすべての組織を取得します。

目的: ユーザーがメンバーである組織をリスト

ルート詳細:

  • メソッド: GET
  • パス: /users/:userId/organizations
  • 認証: 必須(Bearerトークン)

ハンドラー: findOrganizationsForUser, normalizeOrganizationsForUserTerminator

バリデーター: verifyAuthentication(getBearerTokenInfo), validateResourceAccess(['admin', 'self'], getBearerTokenInfo))

使用方法:

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

// Expressアプリでルートを登録
app.use('/api', routes.findOrganizationsForUserRoute);

🔗 関連ドキュメント