  
FDK client for Javascript
Get started with the Javascript Development SDK for Fynd Platform
#### Node
``bash`
npm install @gofynd/fdk-client-javascript
Using this method, you can require fdk-client-javascript like so:
`js`
const {
ApplicationClient,
} = require("fdk-client-javascript");
#### Browser
you can load fdk-client-javascript's application browser bundle from CDN; ApplicationClient and ApplicationModels will be attached to browser's window object.
`html`
Install Specific version
`html`
`js`
const { ApplicationClient } = window;
For logging support user can pass logLevel in ApplicationClient or PlatformClient while declaration.
`
Available logging levels: TRACE, DEBUG, INFO, WARN, ERROR.
Default log level: ERROR
`
`javascript
const applicationClient = new ApplicationClient({
applicationID: "YOUR_APPLICATION_ID",
applicationToken: "YOUR_APPLICATION_TOKEN",
locationDetails: "LOCATION_DETAILS_OBJECT"
});
applicationClient.setLocationDetails({
pincode:"385001",
country: "India",
city: "Ahmedabad",
location: {longitude: "72.585022", latitude: "23.033863"}
});
async function getProductDetails() {
try {
const product = await applicationClient.catalog.getProductDetailBySlug({
slug: "product-slug"
});
console.log(product.name);
} catch (err) {
console.log(err);
}
}
getProductDetails();
`
`javascript
const { PlatformClient } = require("fdk-client-javascript");
async function getData() {
try {
const client = new PlatformClient({
companyId: "COMPANY_ID",
apiKey: "API_KEY",
apiSecret: "API_SECRET",
domain: "DOMAIN",
useAutoRenewTimer: true // Setting true will use timer based logic to refresh the access token. With false will issue refresh token just before any api call when it is expired.
});
const token = await platformClient.getAccesstokenObj({
grant_type: 'client_credentials'
})
platformClient.setToken(token);
// API's without application_id
const tickets = await client.lead.getTickets();
console.log("tickets", tickets);
// API's with application_id
const customers = await client
.application("APPLICATION_ID")
.user.getCustomers();
console.log("customers", customers);
} catch (err) {
console.log(err);
}
}
getData();
`
---
and application client.`javascriptlet auditLog = await client.request({
url:
/service/platform/audit-trail/v1.0/company/1/logs,
method: 'GET',
});`The
request function accepts an object with the following possible keys:- method (string): The HTTP method to use (e.g., 'GET', 'POST', 'PUT', 'DELETE').
- url (string): The URL endpoint for the request.
- query (object): Query parameters to include in the request URL.
- body (object): The request payload to send.
- headers (object): Additional headers to include in the request.
---
$3
Following code snippet will read and write cookies on behalf of you
Cookies will get appended in subsequent requests.
`javascript
const { FdkAxios } = require('@gofynd/fdk-client-javascript');
const { wrapper } = require("axios-cookiejar-support");
const { CookieJar } = require("tough-cookie");
wrapper(FdkAxios);
const cookieJar = new CookieJar();
FdkAxios.defaults.jar = cookieJar;
module.exports = cookieJar
`get the stored cookie from the CookieJar instance
`javascript
const cookieJar = require('path/to/cookieJar') // replace with actual pathlet cookies = await cookieJar.getCookies("https://api.fynd.com");
`---
$3
#### Adding Request Headers
To include request headers when calling a method, add
requestHeaders object in the first argument.`javascript
const requestHeaders = {
"x-api-version": "1.0"
}const options = {
responseHeaders: true
}
const [response, headers] = await platformClient.application("").theme.getAllPages({theme_id: "", requestHeaders: requestHeaders}, options);
`#### get Response Headers
To retrieve the response headers, simply set the
responseHeaders option to true when calling the desired method. Below is an example demonstrating how to achieve this:`javascript
const options = {
responseHeaders: true
}
const [response, headers] = await platformClient.application("").theme.getAllPages({theme_id: ""}, options);console.log("[API RESPONSE]: ", response);
console.log("[RESPONSE HEADERS]: ", headers);
`---
$3
To print the curl command in the console for all network calls made using
applicationClient or platformClient, set the logger level to debug.`javascript
const {
ApplicationClient,
} = require("fdk-client-javascript");let applicationClient = new ApplicationClient({
applicationID: "YOUR_APPLICATION_ID",
applicationToken: "YOUR_APPLICATION_TOKEN",
logLevel: "debug"
});
let response = await applicationClient.theme.getAppliedTheme();
console.log("Active Theme: ", response.information.name);
`The above code will log the curl command in the console
`bash
curl --request GET "https://api.fynd.com/service/application/theme/v1.0/applied-theme" --header 'authorization: Bearer ' --header 'x-fp-sdk-version: 3.16.3' --header 'x-fp-date: 20230222T115108Z' --header 'x-fp-signature: v1.1:1e3ab3b02b5bc626e3c32a37ee844266ade02bbcbaafc28fc7a0e46a76a7a1a8'
Active Theme: Emerge
`---
$3
fdk-client-javascript includes Typescript definitions.
`typescript
import { ApplicationClient } from "fdk-client-javascript";
``