feat: add support for multiple emails

This commit is contained in:
tdurieux
2021-09-06 09:48:49 +02:00
parent ebf104750e
commit 3fbf00c37b
3 changed files with 18 additions and 5 deletions
+8 -3
View File
@@ -64,19 +64,24 @@ async function connect(db) {
}).save() }).save()
); );
} }
const user = await new UserModel({ const user = new UserModel({
accessTokens: { accessTokens: {
github: r.accessToken, github: r.accessToken,
}, },
username: r.username, 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, photo: r.profile.photos[0]?.value,
repositories: (await Promise.all(repositoryModels)).map((d) => d._id), repositories: (await Promise.all(repositoryModels)).map((d) => d._id),
default: { default: {
terms: r.default.terms, terms: r.default.terms,
options: r.default.options, options: r.default.options,
}, },
}).save(); });
if (user.emails.length) user.emails[0].default = true;
await user.save();
localResolve(user); localResolve(user);
}); });
+6 -1
View File
@@ -9,7 +9,12 @@ const UserSchema = new Schema({
type: String, type: String,
index: { unique: true }, index: { unique: true },
}, },
email: String, emails: [
{
email: { type: String },
default: Boolean,
},
],
photo: String, photo: String,
repositories: [String], repositories: [String],
default: { default: {
+4 -1
View File
@@ -6,7 +6,10 @@ export interface IUser {
}; };
username: string; username: string;
email: string; emails: {
email: string;
default: boolean;
}[];
photo?: string; photo?: string;
repositories?: number[]; repositories?: number[];