diff options
Diffstat (limited to 'src/models/User.js')
-rw-r--r-- | src/models/User.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/models/User.js b/src/models/User.js new file mode 100644 index 000000000..94b579928 --- /dev/null +++ b/src/models/User.js | |||
@@ -0,0 +1,41 @@ | |||
1 | import { observable } from 'mobx'; | ||
2 | |||
3 | export default class User { | ||
4 | id = null; | ||
5 | @observable email = null; | ||
6 | @observable firstname = null; | ||
7 | @observable lastname = null; | ||
8 | @observable organization = null; | ||
9 | @observable accountType = null; | ||
10 | @observable emailIsConfirmed = true; // better assume it's confirmed to avoid noise | ||
11 | @observable subscription = {}; | ||
12 | @observable isSubscriptionOwner = false; | ||
13 | @observable isPremium = false; | ||
14 | @observable beta = false; | ||
15 | @observable donor = {}; | ||
16 | @observable isDonor = false; | ||
17 | @observable isMiner = false; | ||
18 | |||
19 | constructor(data: Object) { | ||
20 | if (!data.id) { | ||
21 | throw Error('User requires Id'); | ||
22 | } | ||
23 | |||
24 | this.id = data.id; | ||
25 | this.email = data.email || this.email; | ||
26 | this.firstname = data.firstname || this.firstname; | ||
27 | this.lastname = data.lastname || this.lastname; | ||
28 | this.organization = data.organization || this.organization; | ||
29 | this.accountType = data.accountType || this.accountType; | ||
30 | this.isPremium = data.isPremium || this.isPremium; | ||
31 | this.beta = data.beta || this.beta; | ||
32 | this.donor = data.donor || this.donor; | ||
33 | this.isDonor = data.isDonor || this.isDonor; | ||
34 | this.isSubscriptionOwner = data.isSubscriptionOwner || this.isSubscriptionOwner; | ||
35 | this.isMiner = data.isMiner || this.isMiner; | ||
36 | } | ||
37 | |||
38 | // @computed get isPremium() { | ||
39 | // | ||
40 | // } | ||
41 | } | ||