
let request = require("request");
const getToken = function () {
let auth_url =
"https://c14ab408trial.authentication.us10.hana.ondemand.com/oauth/token?grant_type=password&username=<example@gmail.com>&password=<1234>";
return new Promise((resolve, reject) => {
request(
{
url: auth_url,
method: "POST",
auth: {
user: "<your client id>",
pass:
"<you client secret>",
},
},
function (error, res) {
if (error) return reject(error);
if (res.statusCode != 200) {
return reject("Invalid Status Code");
}
let json = JSON.parse(res.body);
resolve(json.access_token);
}
);
});
};
let access_token = req.cookies.access_token;
if (access_token == "" || access_token == undefined) {
access_token = await getToken();
res.cookie("access_token", access_token, {
httpOnly: true,
});
} else {
console.log("Received token from cookie");
}
app.post("/Travel", async (req, res) => {
let travelID = req.body.TravelID;
let access_token = req.cookies.access_token;
if (access_token == "" || access_token == undefined) {
access_token = await getToken();
res.cookie("access_token", access_token, {
httpOnly: true,
});
} else {
console.log("Received token from cookie");
}
const url =
"https://<enter your API url>.abap.us10.hana.ondemand.com/sap/opu/odata/sap/ZSB_TRAVEL_WEBAPI_U/Travel?$filter=%20(TravelID%20eq%20%27" +
travelID +
"%27)";
const TravelDetail = function (url, access_token) {
return new Promise((resolve, reject) => {
request(
{
uri: url,
method: "GET",
headers: {
"content-type": "application/json",
},
json: true,
auth: {
bearer: access_token,
},
},
function (error, res, body) {
if (error) return reject(error);
if (res.statusCode != 200) {
return reject("Invalid Status Code");
}
let myObject = body.d.results[0];
let sTravelDetails = "";
for (const [key, value] of Object.entries(myObject)) {
if (typeof value !== "object") {
if (typeof value == "string" && value.indexOf("/Date") == 0) {
let date1 = new Date(parseInt(value.match(/\d+/), 10));
sTravelDetails = sTravelDetails + key + ":" + date1 + " ";
} else {
sTravelDetails = sTravelDetails + key + ":" + value + " ";
}
}
}
resolve(sTravelDetails);
}
);
});
};
app.get("/", (req, res) => {
res.send(`
<form action="/Travel" method="POST">
<p>Enter Travel ID</P>
<input name="TravelID" autocomplete=off>
<button>Fetch Details</button>
</form>
`);
});
renderTravelBot: function () {
if (!document.getElementById("cai-webchat")) {
var s = document.createElement("script");
s.setAttribute("id", "cai-webchat");
s.setAttribute("src", "https://cdn.cai.tools.sap/webchat/webchat.js");
document.body.appendChild(s);
}
s.setAttribute("channelId", "<channel id>");
s.setAttribute("token", "<token>");
},
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
11 | |
10 | |
9 | |
6 | |
6 | |
5 | |
4 | |
4 | |
4 | |
3 |