aboutsummaryrefslogtreecommitdiffstats
path: root/src/models/News.ts
blob: 4fc21f590fd26bd8eeb262760f6aeda6531c22a8 (plain) (blame)
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
import { ifUndefinedString, ifUndefinedBoolean } from '../jsUtils';

interface INews {
  id: string;
  message: string;
  type: string;
  sticky: boolean | undefined;
}

export default class News {
  id: string = '';

  message: string = '';

  type: string = 'primary';

  sticky: boolean = false;

  constructor(data: INews) {
    if (!data) {
      throw new Error('News config not valid');
    }

    if (!data.id) {
      throw new Error('News requires Id');
    }

    this.id = data.id;
    this.message = ifUndefinedString(data.message, this.message);
    this.type = ifUndefinedString(data.type, this.type);
    this.sticky = ifUndefinedBoolean(data.sticky, this.sticky);
  }
}