All files / lib/models Device.ts

0% Statements 0/11
100% Branches 0/0
0% Functions 0/1
0% Lines 0/11
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39                                                                             
import * as uuid from 'uuid';
import * as dynogels from 'drandx-dynogels';
import { BaseModel } from './BaseModel';
import { globalConst, awsConfig } from '../config/db/appVariables';
import * as joi from 'joi';

dynogels.AWS.config.update(awsConfig);    

export class Device extends BaseModel {
  public id: string;
  public deviceId: string;
  public token: string;
  public userId: string;
  
  constructor() {
    super();
    this.id = uuid.v4();
  }
 
 
  public model: dynogels.Model = dynogels.define(`${globalConst.stage}_devices`, {
    hashKey: 'id',
    timestamps: false,
    schema: {
      id: joi.string(),
      deviceId: joi.string(),
      token: joi.string(),
      userId: joi.string(),
      createdAt: joi.number(),
      updatedAt: joi.number(),
    },
    tableName: `${globalConst.stage}_devices`,
    indexes : [
      { hashKey : 'deviceId', rangeKey : 'createdAt', type : 'global', name : 'deviceIndex',},
      { hashKey : 'userId', rangeKey : 'createdAt', type : 'global', name : 'userIndex',},
      ]
});
}