@xrengine/server-core
Version:
Shared components for XREngine server
36 lines (30 loc) • 980 B
text/typescript
import { SequelizeServiceOptions, Service } from 'feathers-sequelize'
import moment from 'moment'
import { VerificationEventInterface } from '@xrengine/common/src/dbmodels/VerificationEvent'
import { Application } from '../../../declarations'
export type VerificationEventDataType = VerificationEventInterface & { identityProviderId: string }
/**
* A class for Verification Event service
*/
export class VerificationEvent<T = VerificationEventDataType> extends Service<T> {
app: Application
docs: any
constructor(options: Partial<SequelizeServiceOptions>, app: Application) {
super(options)
this.app = app
}
/**
* Creates a new verification event entry
*
* @param data {object}
* @returns {object}
*/
async create(data: any): Promise<T> {
const { userId } = data
const eventData: any = {
userId,
expiresAt: moment().utc().add(2, 'hours').toDate()
}
return (await super.create({ ...eventData }, {})) as T
}
}