🛣️ Profile ルート
Profile ルートは Express ミドルウェアではなく SDK コンポーザーです。すべてのルートは最初に認証を行います。以下のルートでは、正確な第 2 アクセス規則を示し、orThrow またはレガシーターミネーターを通じてソースエラーを対応付けます。
一覧
詳細
createProfileRoute
実装
エンドポイント: POST /profiles
アクセス: 認証済み管理者、または JSON 本文内のアイデンティティ。
リクエスト: createProfileSchema, application/json 本文。
パイプライン: createProfile, getProfileById, アバター正規化、raw-document 正規化、orThrow。
成功: statusCode 記述子なしで正規化済み Profile データを返します。
失敗: レガシーの作成/読み込みハンドラーは 400、404、500 を返すことがあります。orThrow にはローカルエラー対応付けがないため、それらのエラーは伝播します。完全なソースを表示
getProfileRoute
実装
エンドポイント: GET /profiles/:profileId
アクセス: 認証済み管理者または所有者。
リクエスト: パス profileId。参照: getProfileSchema.
パイプライン: getProfileById, アバターおよび raw-document 正規化、orThrow。
成功: 正規化済み Profile JSON。
失敗: ソースの Profile 検索失敗。完全なソースを表示
findProfilesRoute
実装
エンドポイント: GET /profiles
アクセス: 認証済み管理者。
リクエスト: アイデンティティ/名前フィルターと共有ページネーションクエリパラメーター。参照: findProfilesSchema.
パイプライン: findProfiles, ページネーション、アバター/ドキュメント正規化。
成功: statusCode 記述子なしの { data, metadata: { pagination } }。
失敗: レガシーのリストハンドラーは 500 を返すことがあります。このルートにはローカルエラー対応付けがありません。完全なソースを表示
updateProfileRoute
実装
エンドポイント: PATCH /profiles/:profileId
アクセス: 認証済み管理者または所有者。
リクエスト: パス ID と JSON 本文。参照: updateProfileSchema.
パイプライン: 以前の Profile を読み込み、 updateProfile, 再読み込みし、置換済みアバターを条件付きで削除して正規化します。
成功: 正規化済み Profile JSON。
失敗: 404 Profile、500 ファイルストレージ。完全なソースを表示
deleteProfileRoute
実装
エンドポイント: DELETE /profiles/:profileId
アクセス: 認証済み管理者または所有者。
リクエスト: パス ID。
パイプライン: getProfileById, deleteProfile, deleteAvatar, deleteProfileTerminator.
成功: 204.
失敗: レガシーの読み込み/削除エラーとアバター保存エラーは伝播します。data.deleteProfile がない場合、ターミネーターも 500 をスローします。完全なソースを表示
getAvatarUploadUrlRoute
実装
エンドポイント: GET /profiles/:profileId/avatar-upload-url
アクセス: 認証済み管理者または所有者。
リクエスト: 共有の署名付き画像クエリ契約(contentType、contentLength)。
パイプライン: generateSignedAvatarUploadUrl, orThrow.
成功: 200
失敗: ファイルストレージエラーは 500 に対応付けられます。完全なソースを表示
findProfilesByIdentityIdRoute
実装
エンドポイント: GET /profiles/identities/:identityId
アクセス: 認証済みの本人。
リクエスト: 共有アイデンティティパスパラメーターと共有ページネーションクエリ。
パイプライン: アイデンティティフィルター、_id なしの検索オプション、ページネーション済み findProfiles, アバター正規化、レスポンス組み立て。
成功: statusCode 記述子なしの { data, metadata: { pagination } }。
失敗: ProfileDbBlockError と AvatarBlockError は 500 に対応付けられます。完全なソースを表示
createProfileFollowRoute
実装
エンドポイント: PUT /profiles/:profileId/profile-follows/:followProfileId
アクセス: 認証済み管理者または所有者。
リクエスト: 両方のパス ID。参照: createProfileFollowSchema.
パイプライン: 両方の Profile を読み込み、その後 createProfileFollow.
成功: 204
失敗: 404 Profile、409 重複、500 データベース失敗。完全なソースを表示
deleteProfileFollowRoute
実装
エンドポイント: DELETE /profiles/:profileId/profile-follows/:followProfileId
アクセス: 認証済み管理者または所有者。
リクエスト: 両方のパス ID。
パイプライン: 両方の Profile を読み込み、その後 deleteProfileFollow.
成功: 204
失敗: 404 Profile/フォロー、500 データベース失敗。完全なソースを表示
getProfileFollowersRoute
実装
エンドポイント: GET /profiles/:profileId/followers
アクセス: 認証済み管理者または所有者。
リクエスト: パス ID とページネーション。
パイプライン: Profile を検証し、フォロワーフィルターを構築してページネーションする findProfiles, その後 normalizeFollowers.
成功: 200 の { data, metadata: { pagination } }。
失敗: ProfileNotFoundBlockError は 404、ProfileUnexpectedDBError は 500 に対応付けられます。未対応のブロックエラーは伝播します。完全なソースを表示
createOrganizationFollowRoute
実装
エンドポイント: PUT /profiles/:profileId/organization-follows/:followOrganizationId
アクセス: 認証済み管理者または所有者。
リクエスト: 両方のパス ID。
パイプライン: verifies profile and organization, その後 createOrganizationFollow.
成功: 204
失敗: 404、重複 409、データベース 500。完全なソースを表示
deleteOrganizationFollowRoute
実装
エンドポイント: DELETE /profiles/:profileId/organization-follows/:followOrganizationId
アクセス: 認証済み管理者または所有者。
リクエスト: 両方のパス ID。
パイプライン: verifies profile and organization, その後 deleteOrganizationFollow.
成功: 204
失敗: 404 またはデータベース 500。完全なソースを表示
createProductLikeRoute
実装
エンドポイント: PUT /profiles/:profileId/product-likes/:likeProductId
アクセス: 認証済み管理者または所有者。
リクエスト: 両方のパス ID。
パイプライン: verifies profile and product, その後 createProductLike.
成功: 204
失敗: 404、重複 409、データベース 500。完全なソースを表示
deleteProductLikeRoute
実装
エンドポイント: DELETE /profiles/:profileId/product-likes/:likeProductId
アクセス: 認証済み管理者または所有者。
リクエスト: 両方のパス ID。
パイプライン: verifies profile and product, その後 deleteProductLike.
成功: 204
失敗: 404 またはデータベース 500。完全なソースを表示