aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/shared/users/user.model.ts
blob: bf12876c70c7cd6cf2f7139f370a7d855937c1fe (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
34
35
36
37
38
39
40
41
42
import { User as UserServerModel, UserRole } from '../../../../../shared'

export class User implements UserServerModel {
  id: number
  username: string
  email: string
  role: UserRole
  displayNSFW: boolean
  videoQuota: number
  createdAt: Date

  constructor (hash: {
    id: number,
    username: string,
    email: string,
    role: UserRole,
    videoQuota?: number,
    displayNSFW?: boolean,
    createdAt?: Date
  }) {
    this.id = hash.id
    this.username = hash.username
    this.email = hash.email
    this.role = hash.role

    if (hash.videoQuota !== undefined) {
      this.videoQuota = hash.videoQuota
    }

    if (hash.displayNSFW !== undefined) {
      this.displayNSFW = hash.displayNSFW
    }

    if (hash.createdAt !== undefined) {
      this.createdAt = hash.createdAt
    }
  }

  isAdmin () {
    return this.role === 'admin'
  }
}