scryfall-client
Version:
A module for making requests to scryfall
37 lines (36 loc) • 1.22 kB
JavaScript
import wrapScryfallResponse from "../../lib/wrap-scryfall-response";
import getUrl from "./get-url";
import enqueTask from "./enque-task";
import sendRequest from "./send-request";
import ScryfallError from "../../models/scryfall-error";
export default function sendRequestToApi(options) {
var url = getUrl(options.endpoint, options.query);
return enqueTask(function () {
return sendRequest({
url: url,
method: options.method,
body: options.body,
});
})
.then(function (response) {
try {
return wrapScryfallResponse(response);
}
catch (err) {
return Promise.reject(new ScryfallError({
message: "Something went wrong when wrapping the response from Scryfall",
thrownError: err,
}));
}
})
.catch(function (err) {
if (!(err instanceof ScryfallError)) {
err = new ScryfallError({
message: "An unexpected error occurred when requesting resources from Scryfall.",
status: err.status,
originalError: err,
});
}
return Promise.reject(err);
});
}