import { axios } from "@pipedream/platform";
import crypto from "crypto";
export default defineComponent({
props: {
bokun: {
type: "app",
app: "bokun",
}
},
async run({ steps, $ }) {
const getBokunHeaders = function (accessKey, secretKey, path = "", method = "GET") {
// Format current date in UTC
const now = new Date();
const date = now.toISOString()
.replace('T', ' ')
.replace(/\.\d+Z$/, '');
// Normalize method
const httpMethod = method.toUpperCase();
// Concatenate string for signature
const stringToSign = date + accessKey + httpMethod + path;
// Create HMAC-SHA1 signature
const hmac = crypto.createHmac('sha1', secretKey);
hmac.update(stringToSign);
const signature = hmac.digest('base64');
// Return headers and debug info
return {
headers: {
"X-Bokun-Date": date,
"X-Bokun-AccessKey": accessKey,
"X-Bokun-Signature": signature,
"Content-Type": "application/json"
},
debug: {
date,
stringToSign,
signature
}
};
};
const path= "/restapi/v2.0/marketplace/vendor/self/";
const headers = getBokunHeaders(
this.bokun.$auth.access_key,
this.bokun.$auth.secret_key,
path).headers;
// Make API request
const response = await axios($, {
method: "GET", // must match the method you specified when generating headers
url: `${this.bokun.$auth.api_url}${path}`,
headers,
});
return response;
},
})
Bókun uses API keys for authentication. When you connect your Bókun account, Pipedream securely stores the keys so you can easily authenticate to Bókun APIs in both code and no-code steps.