UNPKG

@coko/server

Version:

Reusable server for use by Coko's projects

95 lines 3.05 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const base_model_1 = __importDefault(require("../base.model")); const user_model_1 = __importDefault(require("../user/user.model")); const types_1 = require("../_helpers/types"); class Identity extends base_model_1.default { email; isDefault; isSocial; isVerified; oauthAccessToken; oauthAccessTokenExpiration; oauthRefreshToken; oauthRefreshTokenExpiration; profileData; provider; userId; verificationToken; verificationTokenTimestamp; user; constructor() { super(); this.type = 'identity'; } static get tableName() { return 'identities'; } static get schema() { return { type: 'object', required: ['email', 'userId'], properties: { email: types_1.email, isDefault: types_1.boolean, isSocial: types_1.boolean, isVerified: types_1.boolean, oauthAccessToken: types_1.stringNullable, oauthAccessTokenExpiration: types_1.dateNullable, oauthRefreshToken: types_1.stringNullable, oauthRefreshTokenExpiration: types_1.dateNullable, profileData: types_1.object, provider: types_1.stringNullable, userId: types_1.id, verificationToken: types_1.stringNullable, verificationTokenTimestamp: types_1.dateNullable, }, }; } static get relationMappings() { return { user: { relation: base_model_1.default.BelongsToOneRelation, modelClass: user_model_1.default, join: { from: 'identities.userId', to: 'users.id', }, }, }; } $formatDatabaseJson(json) { json = super.$formatDatabaseJson(json); if (json.email) { return { ...json, email: json.email.toLowerCase(), }; } return json; } static formatIncomingQueryData(data) { let parsedData = { ...data }; const emailValue = data.email; if (emailValue && typeof emailValue === 'string') { parsedData = { ...data, email: emailValue.toLowerCase(), }; } return parsedData; } static async find(data, options = {}) { const parsedData = Identity.formatIncomingQueryData(data); return super.find(parsedData, options); } static async findOne(data, options = {}) { const parsedData = Identity.formatIncomingQueryData(data); return super.findOne(parsedData, options); } } exports.default = Identity; //# sourceMappingURL=identity.model.js.map