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

📂 カテゴリフィーチャーブロック

カテゴリフィーチャーブロックは、Nodeblocksアプリケーションにおけるカテゴリ管理操作のための完全な事前構成済み機能を提供します。これらのフィーチャーは、カテゴリCRUD操作、ステータス管理、階層構成のための即座に使用可能なAPIエンドポイントを作成するために、スキーマ、ルート、ハンドラーを組み合わせます。


🎯 概要

カテゴリフィーチャーブロックは以下を目的として設計されています:

  • 完全なCRUD操作による完全なカテゴリ管理の提供
  • 親子関係による階層構成のサポート
  • カテゴリステータス管理(有効/無効操作)の処理
  • 安全な操作のための検証とルーティングの実装
  • カテゴリリストのためのフィルタリングとページネーションのサポート

📋 フィーチャー構造

各カテゴリフィーチャーは一貫したコンポジションパターンに従います:

  • スキーマ: カテゴリ入力データとパラメータの検証
  • ルート: カテゴリハンドラー付きHTTPエンドポイントの提供
  • コンポジション: compose関数を使用したスキーマとルートの結合

🔧 利用可能なカテゴリフィーチャー

createCategoryFeature

検証とルーティング付き新しいカテゴリを作成します。

目的: 完全な検証によるカテゴリ作成を処理

コンポジション:

使用方法:

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

// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.createCategoryFeature));

// データベース設定付き
app.use('/api', defService(partial(features.createCategoryFeature, [{ dataStores: db }])));

APIエンドポイント: POST /api/categories


getCategoryFeatures

アクセス制御付き個別カテゴリデータを取得します。

目的: 適切な検証によるカテゴリ情報の取得

コンポジション:

使用方法:

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

// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.getCategoryFeatures));

// データベース設定付き
app.use('/api', defService(partial(features.getCategoryFeatures, [{ dataStores: db }])));

APIエンドポイント: GET /api/categories/:categoryId


findCategoriesFeatures

フィルタリングとページネーション付きカテゴリの検索とリストを行います。

目的: 検索機能付きカテゴリリストの提供

コンポジション:

使用方法:

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

// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.findCategoriesFeatures));

// データベース設定付き
app.use('/api', defService(partial(features.findCategoriesFeatures, [{ dataStores: db }])));

APIエンドポイント: GET /api/categories


editCategoryFeatures

検証とアクセス制御付きカテゴリデータを更新します。

目的: 適切な認可によるカテゴリデータの変更

コンポジション:

使用方法:

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

// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.editCategoryFeatures));

// データベース設定付き
app.use('/api', defService(partial(features.editCategoryFeatures, [{ dataStores: db }])));

APIエンドポイント: PUT /api/categories/:categoryId


enableCategoryStatusFeatures

カテゴリを有効化します(管理者のみ)。

目的: カテゴリアクセスを有効化

コンポジション:

使用方法:

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

// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.enableCategoryStatusFeatures));

// データベース設定付き
app.use('/api', defService(partial(features.enableCategoryStatusFeatures, [{ dataStores: db }])));

APIエンドポイント: PUT /api/categories/:categoryId/enable


disableCategoryStatusFeatures

カテゴリを無効化します(管理者のみ)。

目的: カテゴリアクセスを無効化

コンポジション:

使用方法:

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

// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.disableCategoryStatusFeatures));

// データベース設定付き
app.use('/api', defService(partial(features.disableCategoryStatusFeatures, [{ dataStores: db }])));

APIエンドポイント: PUT /api/categories/:categoryId/disable


editCategoryStatusFeatures

有効化と無効化操作を組み合わせたカテゴリステータス管理を提供します。

目的: 完全なカテゴリステータス管理機能を提供

コンポジション:

使用方法:

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

// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.editCategoryStatusFeatures));

// データベース設定付き
app.use('/api', defService(partial(features.editCategoryStatusFeatures, [{ dataStores: db }])));

APIエンドポイント:

  • PUT /api/categories/:categoryId/enable - カテゴリを有効化
  • PUT /api/categories/:categoryId/disable - カテゴリを無効化

deleteCategoryFeatures

適切な認可によるカテゴリを削除します。

目的: アクセス制御によるカテゴリの削除

コンポジション:

使用方法:

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

// 直接使用(ハンドラーにdataStoresが必要)
app.use('/api', defService(features.deleteCategoryFeatures));

// データベース設定付き
app.use('/api', defService(partial(features.deleteCategoryFeatures, [{ dataStores: db }])));

APIエンドポイント: DELETE /api/categories/:categoryId


🔗 関連ドキュメント