0

私のプロジェクトには、2 つのエンティティがあります。ProfileProject

エンティティProjectには、の配列であるフィールド「コラボレーター」がありProfileます。->コード

Entityには「nickname」と「id」のProfile2 つのフィールドがあり、GET Profile API を呼び出すとよく表示されます。@Expose->コード-> dev.collact.io/api/profiles/8 の結果を参照してください。

{
    "createdDt": "2021-10-05T14:51:29.312Z",
    "updatedDt": "2021-10-05T14:51:29.312Z",
    "deletedDt": null,
    "photo": "https://collact-dev.s3.ap-northeast-2.amazonaws.com/profiles/oj2UBVFXCTnZ9z9mmy8UtU-59FD9F11-1812-4758-85B7-4347A4CE0FEF.png",
    "contact": null,
    "intro": null,
    "detail": null,
    "email": null,
    "phone": null,
    "projects": [],
    "nickname": "Tester",
    "id": 8
}

ただし、GET Project API を呼び出すと、公開されたフィールド「nickname」と「id」が「collaborators」内に表示されません。-> dev.collact.io/api/projects/72の結果を参照してください。

{
    "createdDt": "2021-12-20T18:14:22.277Z",
    "updatedDt": "2021-12-20T18:14:22.277Z",
    "deletedDt": null,
    "id": 72,
    "photos": [
        {
            "createdDt": "2021-12-20T18:14:22.321Z",
            "updatedDt": "2021-12-20T18:14:22.321Z",
            "deletedDt": null,
            "id": 26,
            "photo": "https://collact-dev.s3.ap-northeast-2.amazonaws.com/projects/cWk3fQEoperPxAS6T1QV5K.png"
        }
    ],
    "collaborators": [
        {
            "createdDt": "2021-10-03T14:53:20.165Z",
            "updatedDt": "2021-12-09T13:26:11.870Z",
            "deletedDt": null,
            "photo": "https://collact-dev.s3.ap-northeast-2.amazonaws.com/profiles/oj2UBVFXCTnZ9z9mmy8UtU-59FD9F11-1812-4758-85B7-4347A4CE0FEF.png",
            "contact": "ㅆZz",
            "intro": "Zz",
            "detail": "Asdfasdf",
            "email": null,
            "phone": null
        }
    ],
    "areas": [
        {
            "createdDt": "2021-07-12T13:28:12.063Z",
            "updatedDt": "2021-07-12T13:28:12.063Z",
            "deletedDt": null,
            "id": 1,
            "area": "drawing"
        },
        {
            "createdDt": "2021-07-12T13:28:12.063Z",
            "updatedDt": "2021-07-12T13:28:12.063Z",
            "deletedDt": null,
            "id": 2,
            "area": "design"
        }
    ],
    "title": "title",
    "detail": ""
}

すでに 2 つのソリューションを試しましたが、思い通りに動作しません。

まず、エンティティの「コラボレーター」に @Type(() => Profile) を追加しようとしましProjectたが、違いはありませんでした。

第二に、参加は までしか機能しないと思っていたcollaboratorsので、以下のようになるまで参加する必要がありましたcollaborators.user

  findOne(id: string): Promise<Project> {
    return this.projectsRepository.findOne(id, {
      relations: ['collaborators', 'collaborators.user', 'areas', 'photos'],
    });
  }

ただ、今回は「ニックネーム」と「id」がコラボ相手に出てこない。むしろ、ネストされたユーザー オブジェクト全体が表示されます。

{
    "createdDt": "2021-10-03T11:49:51.052Z",
    "updatedDt": "2021-10-03T11:49:51.052Z",
    "deletedDt": null,
    "id": 4,
    "title": "title2",
    "detail": "",
    "collaborators": [
        {
            "createdDt": "2021-10-03T11:46:20.347Z",
            "updatedDt": "2021-10-03T11:46:20.347Z",
            "deletedDt": null,
            "photo": null,
            "contact": null,
            "intro": null,
            "detail": null,
            "email": null,
            "phone": null,
            "user": {
                "createdDt": "2021-10-03T11:46:20.347Z",
                "updatedDt": "2021-10-03T11:46:20.347Z",
                "deletedDt": null,
                "id": 1,
                "nickname": "string1",
                "isSuperuser": false,
                "isStaff": false,
                "isActive": true,
                "loginPlatform": "manual",
                "uid": "string",
                "token": "string",
                "lastLoginDt": "2021-10-03T11:46:20.347Z"
            }
        }
    ],
    "areas": [
        {
            "createdDt": "2021-10-03T11:44:05.962Z",
            "updatedDt": "2021-10-03T11:44:05.962Z",
            "deletedDt": null,
            "id": 1,
            "area": "drawing"
        },
        {
            "createdDt": "2021-10-03T11:44:05.962Z",
            "updatedDt": "2021-10-03T11:44:05.962Z",
            "deletedDt": null,
            "id": 2,
            "area": "design"
        }
    ],
    "photos": []
}

誰でも助けることができますか?

4

1 に答える 1