From 3fbf00c37be501777b632783bfa95ff2818af5d6 Mon Sep 17 00:00:00 2001 From: tdurieux Date: Mon, 6 Sep 2021 09:48:49 +0200 Subject: [PATCH] feat: add support for multiple emails --- migrateDB.ts | 11 ++++++++--- src/database/users/users.schema.ts | 7 ++++++- src/database/users/users.types.ts | 5 ++++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/migrateDB.ts b/migrateDB.ts index 3f324f0..66cad50 100644 --- a/migrateDB.ts +++ b/migrateDB.ts @@ -64,19 +64,24 @@ async function connect(db) { }).save() ); } - const user = await new UserModel({ + const user = new UserModel({ accessTokens: { github: r.accessToken, }, username: r.username, - email: r.profile.emails[0]?.value, + emails: r.profile.emails.map((email) => { + return { email: email.value, default: false }; + }), photo: r.profile.photos[0]?.value, repositories: (await Promise.all(repositoryModels)).map((d) => d._id), default: { terms: r.default.terms, options: r.default.options, }, - }).save(); + }); + if (user.emails.length) user.emails[0].default = true; + + await user.save(); localResolve(user); }); diff --git a/src/database/users/users.schema.ts b/src/database/users/users.schema.ts index 9a2117e..d81986c 100644 --- a/src/database/users/users.schema.ts +++ b/src/database/users/users.schema.ts @@ -9,7 +9,12 @@ const UserSchema = new Schema({ type: String, index: { unique: true }, }, - email: String, + emails: [ + { + email: { type: String }, + default: Boolean, + }, + ], photo: String, repositories: [String], default: { diff --git a/src/database/users/users.types.ts b/src/database/users/users.types.ts index b8f2af2..165e0db 100644 --- a/src/database/users/users.types.ts +++ b/src/database/users/users.types.ts @@ -6,7 +6,10 @@ export interface IUser { }; username: string; - email: string; + emails: { + email: string; + default: boolean; + }[]; photo?: string; repositories?: number[];