UNPKG

ebay-api

Version:

eBay API for Node and Browser

30 lines (29 loc) 1.15 kB
import Auth from '../auth/index.js'; import Base from './base.js'; import { generateContentDigestValue, generateSignature, generateSignatureInput } from './digitalSignature.js'; /** * Superclass with Auth container. */ export default class Api extends Base { constructor(config, req, auth) { super(config, req); this.auth = auth || new Auth(this.config, this.req); } getDigitalSignatureHeaders(signatureComponents, payload) { if (!this.config.signature) { return {}; } const digitalSignatureHeaders = { 'x-ebay-enforce-signature': true, 'x-ebay-signature-key': this.config.signature.jwe, ...payload ? { 'content-digest': generateContentDigestValue(payload, this.config.signature.cipher ?? 'sha256') } : {}, 'signature-input': generateSignatureInput(payload) }; return { ...digitalSignatureHeaders, 'signature': generateSignature(digitalSignatureHeaders, this.config.signature.privateKey, signatureComponents, payload) }; } }