@darkwolf/qiwi.mjs
Version:
153 lines (132 loc) • 3.13 kB
JavaScript
import Helper from '@darkwolf/helper.mjs'
import { IdentificationType } from '../constants/index.mjs'
export default class Identification {
static fromParams(params = {}, context) {
const data = {
id: params.id,
type: params.type,
firstName: params.firstName,
middleName: params.middleName,
lastName: params.lastName,
birthDate: params.birthDate,
passport: params.passport,
inn: params.inn,
snils: params.snils,
oms: params.oms
}
if (data.type) {
data.type = data.type.toLowerCase()
}
return new Identification(data, context)
}
static from(data, context) {
return new Identification(data, context)
}
constructor(data = {}, context) {
this
.setContext(context)
.setId(data.id)
.setType(data.type)
.setFirstName(data.firstName)
.setMiddleName(data.middleName)
.setLastName(data.lastName)
.setBirthDate(data.birthDate)
.setPassport(data.passport)
.setInn(data.inn)
.setSnils(data.snils)
.setOms(data.oms)
}
get isAnonymous() {
return this.type === IdentificationType.ANONYMOUS
}
get isSimple() {
return this.type === IdentificationType.SIMPLE
}
get isVerified() {
return this.type === IdentificationType.VERIFIED
}
get isFull() {
return this.type === IdentificationType.FULL
}
setContext(context = {}) {
this.context = context
return this
}
setId(id) {
this.id = id
return this
}
setType(type) {
this.type = type
return this
}
setFirstName(firstName) {
this.firstName = firstName
return this
}
setMiddleName(middleName) {
this.middleName = middleName
return this
}
setLastName(lastName) {
this.lastName = lastName
return this
}
setBirthDate(date) {
this.birthDate = date
return this
}
setPassport(passport) {
this.passport = passport
return this
}
setInn(inn) {
this.inn = inn
return this
}
setSnils(snils) {
this.snils = snils
return this
}
setOms(oms) {
this.oms = oms
return this
}
get() {
return this.context.qiwi.getIdentification()
}
toJSON() {
const data = {}
if (this.id) {
data.id = this.id
}
if (this.type) {
data.type = this.type
}
if (Helper.exists(this.firstName)) {
data.firstName = this.firstName
}
if (Helper.exists(this.middleName)) {
data.middleName = this.middleName
}
if (Helper.exists(this.lastName)) {
data.lastName = this.lastName
}
if (this.birthDate) {
data.birthDate = this.birthDate
}
if (Helper.exists(this.passport)) {
data.passport = this.passport
}
if (Helper.exists(this.inn)) {
data.inn = this.inn
}
if (Helper.exists(this.snils)) {
data.snils = this.snils
}
if (Helper.exists(this.oms)) {
data.oms = this.oms
}
return data
}
}