@omnigraph/odata
Version:
31 lines (30 loc) • 1.74 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.createDeleteEntitySetByIdentifierResolver = createDeleteEntitySetByIdentifierResolver;
const tslib_1 = require("tslib");
const url_join_1 = tslib_1.__importDefault(require("url-join"));
const fetch_1 = require("@whatwg-node/fetch");
const promise_helpers_1 = require("@whatwg-node/promise-helpers");
const addIdentifierToUrl_js_1 = require("../utils/addIdentifierToUrl.js");
const getUrlString_js_1 = require("../utils/getUrlString.js");
const handleResponseText_js_1 = require("../utils/handleResponseText.js");
function createDeleteEntitySetByIdentifierResolver({ endpoint, entitySetName, identifierFieldName, identifierFieldTypeRef, dataloaderFactory, headersFactory, }) {
return function deleteEntitySetByIdentifierResolver(root, args, context, info) {
const url = new URL(endpoint);
url.href = (0, url_join_1.default)(url.href, '/' + entitySetName);
(0, addIdentifierToUrl_js_1.addIdentifierToUrl)(url, identifierFieldName, identifierFieldTypeRef, args);
const urlString = (0, getUrlString_js_1.getUrlString)(url);
const method = 'DELETE';
const request = new fetch_1.Request(urlString, {
method,
headers: headersFactory({
root,
args,
context,
info,
env: process.env,
}, method),
});
return (0, promise_helpers_1.handleMaybePromise)(() => dataloaderFactory(context).load(request), response => (0, promise_helpers_1.handleMaybePromise)(() => response.text(), responseText => (0, handleResponseText_js_1.handleResponseText)(responseText, urlString, info)));
};
}
;