const ms = require('ms') const Now = require('../lib') async function parsePlan(res) { let id let until const {subscription} = await res.json() if (subscription) { id = subscription.plan.id if (subscription.cancel_at_period_end) { until = ms( new Date(subscription.current_period_end * 1000) - new Date(), {long: true} ) } } else { id = 'oss' } return {id, until} } module.exports = class Plans extends Now { async getCurrent() { const res = await this._fetch('/www/user/plan') return await parsePlan(res) } async set(plan) { const res = await this._fetch('/www/user/plan', { method: 'PUT', body: {plan} }) if (res.ok) { return await parsePlan(res) } const err = new Error(res.statusText) err.res = res throw err } }