メインコンテンツまでスキップ
バージョン: 0.14.0 (最新)

⚙️ プロフィールハンドラー

プロフィールハンドラーは Express ミドルウェアではなく、ルートパイプライン関数です。paramscontext から RouteHandlerPayload 値を読み取り、成功した値を context.data にマージするか、成功した Result を HTTP レスポンスディスクリプターで終了します。いくつかのエクスポートは非推奨です。新しいカスタム合成ではブロックへ移行してください。

一覧

ハンドラーパイプラインでの役割入力 / コンテキスト結果 / 動作 / エラー使用するルート
createProfileハンドラーrequestBodydb.profiles基本エンティティを作成し、profileId を書き込みます。空または失敗した本文は 400、データベース失敗は 500createProfileRoute
getProfileByIdハンドラーcontext.data.profileId またはパス ID、db.profilesprofile を書き込みます。ID 欠落は 400、不在は 404、データベース失敗は 500createProfileRoutegetProfileRouteupdateProfileRoutedeleteProfileRoute
findProfilesハンドラーrequestQuerydb.profilesprofiles を書き込みます。クエリ失敗時は 500findProfilesRoute
updateProfileハンドラーパス/コンテキスト ID、requestBodydb.profilesupdateProfile を書き込みます。ID または本文の不在、変更なしは 400、不在は 404updateProfileRoute
deleteProfileハンドラーパス/コンテキスト ID、db.profilesdeleteProfile を書き込みます。ID 欠落は 400、不在は 404、失敗時は 500deleteProfileRoute
normalizeProfileTerminator非推奨ターミネーターcontext.data.profile_id を削除してプロフィールを返します。エラーまたはデータ欠落時にスローします。カスタム合成のみ
normalizeProfilesListTerminator非推奨ターミネーターcontext.data.profilesすべてのプロフィールから _id を削除します。エラー時にスローします。カスタム合成のみ
deleteProfileTerminator非推奨ターミネーターcontext.data.deleteProfile{ statusCode: 204 } を返します。エラーまたはデータ欠落時にスローします。deleteProfileRoute

詳細

createProfile

実装

非推奨: ブロックへ移行してください。params.requestBodycontext.db.profiles を読み取ります。本文がないか空の場合は NodeblocksError(400, 'Request body is required', 'createProfile') を返します。成功時には、本文を展開する前に空の organizationFollowsproductLikesprofileFollows を指定して createBaseEntity を呼び出し、そのエンティティを挿入し、mergeData{ profileId: baseEntity.id } を書き込みます。insertedId のない結果は 400、挿入例外は 500 を返します。createProfileRoute の先頭です。

getProfileById

実装

非推奨: ブロックへ移行してください。params.requestParams?.profileId より前に context.data?.profileId を読み取り、選んだ ID を文字列へ強制変換して context.db.profiles.findOne({ id }) を呼び出します。mergeData{ profile } を書き込みます。ID がない場合は 400、プロフィールがない場合は 404、データベース例外は 500 を返します。createProfileRoutegetProfileRouteupdateProfileRoutedeleteProfileRoute で使用されます。

findProfiles

実装

非推奨: ブロックへ移行してください。params.requestQuerycontext.db.profiles を読み取り、requestQuery || {} を MongoDB フィルターとして使用し、toArray() でカーソルを実体化して、mergeData{ profiles } を書き込みます。クエリ例外は NodeblocksError(500, 'Failed to find profiles', 'findProfiles') を返します。findProfilesRoute ではページネーションでラップされます。

updateProfile

実装

非推奨: ブロックへ移行してください。パス ID より前にデータ ID、params.requestBodycontext.db.profiles を読み取ります。updateOne({ id: String(profileId) }, { $set: updateBaseEntity(requestBody) }) を呼び出し、{ updateProfile: result } を書き込みます。ID 欠落、本文が空、または modifiedCount === 0400matchedCount === 0404、例外は 500 を返します。updateProfileRoute で使用されます。

deleteProfile

実装

非推奨: ブロックへ移行してください。パス ID より前にデータ ID を読み取り、パブリック文字列 ID で context.db.profiles を削除します。{ deleteProfile: result } を書き込みます。ID がない場合は 400deletedCount === 0404、偽のドライバー結果または例外は 500 を返します。deleteProfileRoute で使用されます。

normalizeProfileTerminator

実装

非推奨: 正規化処理と orThrow を使用してください。Result<RouteHandlerPayload, Error> を受け取り、エラー結果を再スローし、context.data.profile を必要とします(ない場合は NodeblocksError(500, 'Unknown error normalizing profile', 'normalizeProfileTerminator') をスローします)。そのオブジェクトから _id を除いて返します。カスタム合成のみで、エクスポートされた Profile ルートは使用しません。

normalizeProfilesListTerminator

実装

非推奨: 正規化処理と orThrow を使用してください。Result<RouteHandlerPayload, Error> を受け取り、エラー結果を再スローし、context.data.profiles をマッピングして、すべてのプロフィールから _id を除いて返します。data.profiles の不在は防御しません。カスタム合成のみで、エクスポートされた Profile ルートは使用しません。

deleteProfileTerminator

実装

非推奨: 正規化処理と orThrow を使用してください。Result<RouteHandlerPayload, Error> を受け取り、エラー結果を再スローし、context.data.deleteProfile を必要とします(ない場合は NodeblocksError(500, 'Unknown error deleting profile', 'deleteProfileTerminator') をスローします)。正確に { statusCode: 204 } を返します。deleteProfileRoute の最終ターミネーターです。