summaryrefslogtreecommitdiff
path: root/ui/app/models/provider.js
blob: af634339faca71cef83b23542d45f99066c1837e (plain)
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
import bitmask from 'lib/bitmask'

var LOCALE = 'en'

export default class Provider {

  constructor(props) {
    this._name = props.name
    this._description = props.description
    let k = null
    for (k in props) {
      if (k != 'description' && k != 'name') {
        this[k] = props[k]
      }
    }
  }

  get name() {
    return this._name[LOCALE]
  }

  get description() {
    return this._description[LOCALE]
  }

  get hasEmail() {
    return this.services.includes("mx")
  }

  get hasVPN() {
    return this.services.includes("openvpn")
  }

  static setup(domain) {
    return bitmask.bonafide.provider.create(domain).then(
      response => {
        console.log("Provider configured: " + response.domain)
        return new Provider(response)
      }
    )
  }

  static get(domain) {
    return bitmask.bonafide.provider.read(domain).then(
      response => {
        return new Provider(response)
      }
    )
  }

  static list(seeded=false) {
    return bitmask.bonafide.provider.list(seeded).then(
      response => {
        return response.map(
          i => { return i['domain'] }
        )
      }
    )
  }

  static delete(domain) {
    return bitmask.bonafide.provider.delete(domain)
  }
}