UNPKG

@xompass/sdk-cloud-api

Version:

Xompass Client for cloud-api

140 lines (134 loc) 3.13 kB
import {ModelDefinition} from './BaseModels'; import {Device} from './Device'; import {Log} from './Log'; import {RateLimit} from './RateLimit'; declare var Object: any; export interface DeviceTokenInterface { id?: string; ttl?: number; scopes?: Array<any>; enabled?: boolean; created?: Date; modified?: Date; deleted?: Date; deviceId?: string; _rateLimit?: any; device?: Device; trackingLogs?: Log[]; rateLimit?: RateLimit[]; } export class DeviceToken implements DeviceTokenInterface { id: string; ttl: number = 1209600; scopes: Array<any>; enabled: boolean = true; created: Date; modified: Date; deleted: Date; deviceId: string; _rateLimit: any; device?: Device; trackingLogs?: Log[]; rateLimit?: RateLimit[]; constructor(data?: DeviceTokenInterface) { Object.assign(this, data); } /** * The name of the model represented by this $resource, * i.e. `DeviceToken`. */ public static getModelName(): string { return 'DeviceToken'; } /** * @method factory * @author Jonathan Casarrubias * @license MIT * This method creates an instance of DeviceToken for dynamic purposes. */ public static factory(data: DeviceTokenInterface): DeviceToken{ return new DeviceToken(data); } /** * @method getModelDefinition * @author Julien Ledun * @license MIT * This method returns an object that represents some of the model * definitions. */ public static getModelDefinition(): ModelDefinition { return { name: 'DeviceToken', plural: 'DeviceTokens', path: 'DeviceTokens', idName: 'id', properties: { id: { name: 'id', type: 'string' }, ttl: { name: 'ttl', type: 'number', default: 1209600 }, scopes: { name: 'scopes', type: 'Array&lt;any&gt;' }, enabled: { name: 'enabled', type: 'boolean', default: true }, created: { name: 'created', type: 'Date' }, modified: { name: 'modified', type: 'Date' }, deleted: { name: 'deleted', type: 'Date', default: undefined }, deviceId: { name: 'deviceId', type: 'string' }, _rateLimit: { name: '_rateLimit', type: 'any' }, }, relations: { device: { name: 'device', type: 'Device', model: 'Device', relationType: 'belongsTo', keyFrom: 'deviceId', keyTo: 'id' }, trackingLogs: { name: 'trackingLogs', type: 'Log[]', model: 'Log', relationType: 'hasMany', keyFrom: 'id', keyTo: 'trackingModelId' }, rateLimit: { name: 'rateLimit', type: 'RateLimit[]', model: 'RateLimit', relationType: 'embedsOne', keyFrom: '_rateLimit', keyTo: 'id' }, } }; } }