Skip to content

Commit 1dcd54a

Browse files
Ryukemeisterdevin-ai-integration[bot]ibex088
authored
feat: add avatarUrl and bio fields to /me endpoint response (#25224)
* feat: add avatarUrl to /v2/me endpoint response - Add avatarUrl field to userSchemaResponse schema in packages/platform/types/me.ts - Update e2e tests to verify avatarUrl is returned in GET and PATCH /v2/me responses - Field is nullable to match User model in Prisma schema - Fix pre-existing lint warnings by removing 'as any' type assertions in test file Co-Authored-By: [email protected] <[email protected]> * feat: add avatarUrl to MeOutput DTO for OpenAPI docs - Add avatarUrl field to MeOutput class in apps/api/v2/src/ee/me/outputs/me.output.ts - Field is nullable to match the Zod schema and Prisma model - This ensures OpenAPI documentation will include avatarUrl when regenerated Co-Authored-By: [email protected] <[email protected]> * feat: add bio field to /v2/me endpoint response - Add bio field to userSchemaResponse Zod schema in packages/platform/types/me.ts - Add bio field to MeOutput NestJS DTO in apps/api/v2/src/ee/me/outputs/me.output.ts - Update e2e tests to verify bio is returned in both GET and PATCH responses - Field is nullable to match the User model in Prisma schema Co-Authored-By: [email protected] <[email protected]> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: chauhan_s <[email protected]>
1 parent 68d3d9d commit 1dcd54a

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

apps/api/v2/src/ee/me/me.controller.e2e-spec.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ describe("Me Endpoints", () => {
9595
expect(responseBody.data.id).toEqual(user.id);
9696
expect(responseBody.data.email).toEqual(user.email);
9797
expect(responseBody.data.name).toEqual(user.name);
98+
expect(responseBody.data.avatarUrl).toEqual(user.avatarUrl);
99+
expect(responseBody.data.bio).toEqual(user.bio);
98100
expect(responseBody.data.timeFormat).toEqual(user.timeFormat);
99101
expect(responseBody.data.defaultScheduleId).toEqual(user.defaultScheduleId);
100102
expect(responseBody.data.weekStart).toEqual(user.weekStart);
@@ -117,6 +119,8 @@ describe("Me Endpoints", () => {
117119

118120
expect(responseBody.data.id).toEqual(user.id);
119121
expect(responseBody.data.email).toEqual(user.email);
122+
expect(responseBody.data.avatarUrl).toEqual(user.avatarUrl);
123+
expect(responseBody.data.bio).toEqual(user.bio);
120124
expect(responseBody.data.timeFormat).toEqual(user.timeFormat);
121125
expect(responseBody.data.defaultScheduleId).toEqual(user.defaultScheduleId);
122126
expect(responseBody.data.weekStart).toEqual(user.weekStart);
@@ -151,13 +155,13 @@ describe("Me Endpoints", () => {
151155
});
152156

153157
it("should not update user associated with access token given invalid time format", async () => {
154-
const bodyWithIncorrectTimeFormat: UpdateManagedUserInput = { timeFormat: 100 as any };
158+
const bodyWithIncorrectTimeFormat = { timeFormat: 100 };
155159

156160
return request(app.getHttpServer()).patch("/v2/me").send(bodyWithIncorrectTimeFormat).expect(400);
157161
});
158162

159163
it("should not update user associated with access token given invalid week start", async () => {
160-
const bodyWithIncorrectWeekStart: UpdateManagedUserInput = { weekStart: "waba luba dub dub" as any };
164+
const bodyWithIncorrectWeekStart = { weekStart: "waba luba dub dub" };
161165

162166
return request(app.getHttpServer()).patch("/v2/me").send(bodyWithIncorrectWeekStart).expect(400);
163167
});

apps/api/v2/src/ee/me/outputs/me.output.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ export class MeOutput {
2727
@DocsProperty({ type: String, nullable: true })
2828
name!: string | null;
2929

30+
@IsString()
31+
@DocsProperty({ type: String, nullable: true })
32+
avatarUrl!: string | null;
33+
34+
@IsString()
35+
@DocsProperty({ type: String, nullable: true })
36+
bio!: string | null;
37+
3038
@IsInt()
3139
@DocsProperty()
3240
timeFormat!: number;

packages/platform/types/me.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ export const userSchemaResponse = z.object({
44
id: z.number().int(),
55
email: z.string(),
66
name: z.string().nullable(),
7+
avatarUrl: z.string().nullable(),
8+
bio: z.string().nullable(),
79
timeFormat: z.number().int().default(12),
810
defaultScheduleId: z.number().int().nullable(),
911
weekStart: z.string(),

0 commit comments

Comments
 (0)