/**
* @NApiVersion 2.1
* @NScriptType Suitelet
*/
define([‘N/search’, ‘N/ui/serverWidget’, ‘N/https’],
/**
* @param{search} search
* @param{serverWidget} serverWidget
* @param{https} https
*/
(search, serverWidget, https) => {
/**
* Defines the Suitelet script trigger point.
* @param {Object} scriptContext
* @param {ServerRequest} scriptContext.request – Incoming request
* @param {ServerResponse} scriptContext.response – Suitelet response
* @since 2015.2
*/
const onRequest = (context) => {
try {
if (context.request.method === ‘GET’) {
let form = serverWidget.createForm({
title: ‘TV show details’
});
// Add fields to the form
form.addField({
id: ‘showname’,
type: serverWidget.FieldType.TEXT,
label: ‘Show Name’
});
form.addSubmitButton({
label: ‘search shows’
});
context.response.writePage(form);
} else {
let showNameKeyword = context.request.parameters.showname;
log.debug(“showNameKeyword”, showNameKeyword);
let urlValue = ‘https://api.tvmaze.com/search/shows?q=’ + showNameKeyword || “”;
let response = https.get({
url: urlValue
});
//log.debug(“response”, response);
let body = response.body;
//log.debug(“body”, body);
let results = JSON.parse(body);
log.debug(“results”, results);
let form = serverWidget.createForm({
title: ‘TV Show Results’
});
let sublist = form.addSublist({
id: ‘custpage_sublist’,
type: serverWidget.SublistType.LIST,
label: ‘TV Show Results’
});
sublist.addField({
id: ‘custpage_name’,
type: serverWidget.FieldType.TEXT,
label: ‘Name’
});
sublist.addField({
id: ‘custpage_type’,
type: serverWidget.FieldType.TEXT,
label: ‘Type’
});
sublist.addField({
id: ‘custpage_language’,
type: serverWidget.FieldType.TEXT,
label: ‘Language’
});
sublist.addField({
id: ‘custpage_url’,
type: serverWidget.FieldType.TEXT,
label: ‘URL’
});
for (let i = 0; i < results.length; i++) {
sublist.setSublistValue({
id: ‘custpage_name’,
line: i,
value: results[i].show.name || “”
});
sublist.setSublistValue({
id: ‘custpage_type’,
line: i,
value: results[i].show.type || “”
});
sublist.setSublistValue({
id: ‘custpage_language’,
line: i,
value: results[i].show.language || “”
});
sublist.setSublistValue({
id: ‘custpage_url’,
line: i,
value: results[i].show.url || “”
});
}
context.response.writePage(form);
}
} catch (e) {
log.debug(“error @onRequest”, e);
}
}
return { onRequest }
});