blob: 8c6c2b1c9463c36caab790e31e2d6ce864a14ffe (
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
import { observable } from 'mobx';
interface IUser {
id: string | null;
email: string | null;
firstname: string | null;
lastname: string | null;
organization: string | null;
accountType: string | null;
beta: boolean;
donor: object;
isDonor: boolean;
isMiner: boolean;
locale: boolean;
isSubscriptionOwner: boolean;
hasSubscription: boolean;
hadSubscription: boolean;
team: object;
}
// TODO: Need to cleanup these fields since we have removed the tiers of the paid plans from Ferdi
export default class User {
id: string | null = null;
@observable email: string | null = null;
@observable firstname: string | null = null;
@observable lastname: string | null = null;
@observable organization: string | null = null;
@observable accountType: string | null = null;
@observable emailIsConfirmed = true;
// TODO: Need to delete references to 'subscription' and 'donor'
// better assume it's confirmed to avoid noise
@observable subscription = {};
@observable isSubscriptionOwner = false;
@observable hasSubscription = true;
@observable hadSubscription = false;
@observable beta = false;
@observable donor = {};
@observable isDonor = false;
@observable isMiner = false;
@observable locale = false;
@observable team = {};
constructor(data: IUser) {
if (!data.id) {
throw Error('User requires Id');
}
this.id = data.id;
this.email = data.email || this.email;
this.firstname = data.firstname || this.firstname;
this.lastname = data.lastname || this.lastname;
this.organization = data.organization || this.organization;
this.accountType = data.accountType || this.accountType;
this.beta = data.beta || this.beta;
this.donor = data.donor || this.donor;
this.isDonor = data.isDonor || this.isDonor;
this.isMiner = data.isMiner || this.isMiner;
this.locale = data.locale || this.locale;
this.isSubscriptionOwner = data.isSubscriptionOwner || this.isSubscriptionOwner;
this.hasSubscription = data.hasSubscription || this.hasSubscription;
this.hadSubscription = data.hadSubscription || this.hadSubscription;
this.team = data.team || this.team;
}
}
|