UNPKG

@darkwolf/qiwi.mjs

Version:
131 lines (117 loc) 3.9 kB
import Helper from '@darkwolf/helper.mjs' import { UnixTimestamp } from '@darkwolf/time.mjs' import NicknameInfo from './NicknameInfo.mjs' import IdentificationInfo from './IdentificationInfo.mjs' import SmsNotification from './SmsNotification.mjs' import PriorityPackage from './PriorityPackage.mjs' export default class ContractInfo { static fromParams(params = {}, context) { const data = { id: params.contractId, nicknameInfo: params.nickname, identifications: params.identificationInfo, smsNotification: params.smsNotification, priorityPackage: params.priorityPackage, blocked: params.blocked, date: params.creationDate } if (data.nicknameInfo) { data.nicknameInfo = NicknameInfo.fromParams(data.nicknameInfo, context) } if (data.identifications) { data.identifications = data.identifications.map(identificationInfo => IdentificationInfo.fromParams(identificationInfo, context)) } if (data.smsNotification) { data.smsNotification = SmsNotification.fromParams(data.smsNotification, context) } if (data.priorityPackage) { data.priorityPackage = PriorityPackage.fromParams(data.priorityPackage, context) } if (data.date) { data.date = new UnixTimestamp(data.date).seconds } return new ContractInfo(data, context) } static from(data, context) { return new ContractInfo(data, context) } constructor(data = {}, context) { this .setContext(context) .setId(data.id) .setNicknameInfo(data.nicknameInfo) .setIdentifications(data.identifications) .setSmsNotification(data.smsNotification) .setPriorityPackage(data.priorityPackage) .setBlocked(data.blocked) .setDate(data.date) } setContext(context = {}) { this.context = context return this } setId(id) { this.id = id return this } setNicknameInfo(nicknameInfo) { this.nicknameInfo = nicknameInfo ? ( nicknameInfo instanceof NicknameInfo ? nicknameInfo : new NicknameInfo(nicknameInfo, this.context) ) : undefined return this } setIdentifications(identifications) { this.identifications = identifications ? identifications.map(identificationInfo => identificationInfo instanceof IdentificationInfo ? identificationInfo : new IdentificationInfo(identificationInfo, this.context) ) : undefined return this } setSmsNotification(smsNotification) { this.smsNotification = smsNotification ? ( smsNotification instanceof SmsNotification ? smsNotification : new SmsNotification(smsNotification, this.context) ) : undefined return this } setPriorityPackage(priorityPackage) { this.priorityPackage = priorityPackage ? ( priorityPackage instanceof PriorityPackage ? priorityPackage : new PriorityPackage(priorityPackage, this.context) ) : undefined return this } setBlocked(boolean) { this.blocked = boolean return this } setDate(date) { this.date = date return this } get() { return this.context.qiwi.getContractInfo() } toJSON() { const data = {} if (this.id) { data.id = this.id } if (this.nicknameInfo) { data.nicknameInfo = this.nicknameInfo.toJSON() } if (this.identifications) { data.identifications = this.identifications.map(identificationInfo => identificationInfo.toJSON()) } if (this.smsNotification) { data.smsNotification = this.smsNotification.toJSON() } if (this.priorityPackage) { data.priorityPackage = this.priorityPackage.toJSON() } if (Helper.exists(this.blocked)) { data.blocked = this.blocked } if (this.date) { data.date = this.date } return data } }