89 lines
1.6 KiB
JavaScript
89 lines
1.6 KiB
JavaScript
const { getAppQuota } = require("./quota")
|
|
const env = require("../../../environment")
|
|
const newid = require("../../../db/newid")
|
|
|
|
/**
|
|
* This is used to pass around information about the deployment that is occurring
|
|
*/
|
|
class Deployment {
|
|
constructor(appId, id = null) {
|
|
this.appId = appId
|
|
this._id = id || newid()
|
|
}
|
|
|
|
// purely so that we can do quota stuff outside the main deployment context
|
|
async init() {
|
|
if (!env.SELF_HOSTED) {
|
|
this.setQuota(await getAppQuota(this.appId))
|
|
}
|
|
}
|
|
|
|
setQuota(quota) {
|
|
if (!quota) {
|
|
return
|
|
}
|
|
this.quota = quota
|
|
}
|
|
|
|
getQuota() {
|
|
return this.quota
|
|
}
|
|
|
|
getAppId() {
|
|
return this.appId
|
|
}
|
|
|
|
setVerification(verification) {
|
|
if (!verification) {
|
|
return
|
|
}
|
|
if (this.verification.quota) {
|
|
this.quota = this.verification.quota
|
|
}
|
|
this.verification = verification
|
|
}
|
|
|
|
getVerification() {
|
|
return this.verification
|
|
}
|
|
|
|
setStatus(status, err = null) {
|
|
this.status = status
|
|
if (err) {
|
|
this.err = err
|
|
}
|
|
}
|
|
|
|
fromJSON(json) {
|
|
if (json.verification) {
|
|
this.setVerification(json.verification)
|
|
}
|
|
if (json.quota) {
|
|
this.setQuota(json.quota)
|
|
}
|
|
if (json.status) {
|
|
this.setStatus(json.status, json.err)
|
|
}
|
|
}
|
|
|
|
getJSON() {
|
|
const obj = {
|
|
_id: this._id,
|
|
appId: this.appId,
|
|
status: this.status,
|
|
}
|
|
if (this.err) {
|
|
obj.err = this.err
|
|
}
|
|
if (this.verification && this.verification.cfDistribution) {
|
|
obj.cfDistribution = this.verification.cfDistribution
|
|
}
|
|
if (this.quota) {
|
|
obj.quota = this.quota
|
|
}
|
|
return obj
|
|
}
|
|
}
|
|
|
|
module.exports = Deployment
|