@darkwolf/qiwi.mjs
Version:
38 lines (32 loc) • 1.09 kB
JavaScript
import { CrossRate } from '../types/index.mjs'
import { UnknownError } from '../errors/index.mjs'
import { EventType } from '../constants/index.mjs'
export default class GetCrossRatesRequest {
static endpoint = '/sinap/crossRates'
static from(context) {
return new GetCrossRatesRequest(context)
}
constructor(context) {
this.endpoint = GetCrossRatesRequest.endpoint
this.setContext(context)
}
setContext(context = {}) {
this.context = context
return this
}
async send() {
const response = await this.context.qiwi.request(this)
if (response) {
if (response.ok) {
response.setResult(response.result.result.map(rate => CrossRate.fromParams(rate)))
this.context.qiwi.emit(EventType.RESPONSE, response)
return response.result
} else {
const error = new UnknownError(response.message).setResponse(response)
this.context.qiwi.emit(EventType.ERROR, error)
if (!this.context.qiwi.settings.ignoreErrors) throw error
}
}
return null
}
}