🙆♀️
bundleで各アプリのアカウント数を取得する
はじめに
SaaSによってはアカウント数上限が設定されているものがあり、超える前に契約数を増加させなければならない。その効率化のためにbundleを利用してアカウント数を取得する。
code
main.js
const aqpplicationList = getApplicationList();
aqpplicationList.forEach(application => Loogger.log(application.getTotal());
bundle.js
const TOKEN = PropertiesService.getScriptProperties().getProperty('token');
const URL_API = 'https://<テナント名>.bundle.jp/api/v1';
function fetchBundle(query){
const options = {
'method': 'POST',
'payload': JSON.stringify({query: query}),
'headers': {
'content-type': 'application/json',
'Accept': 'application/json',
'Authorization': `Bearer ${TOKEN}`,
},
muteHttpExceptions:true,
};
const res = UrlFetchApp.fetch(URL_API, options);
return JSON.parse(res).data.team;
}
function getApplicationList(){
const query = `
{
team {
applications(first:100){
nodes{
name,
tenantName,
applicationAccountsTotalCount
}
}
}
}
`;
return fetchBundle(query).applications.nodes.map(json => new Application(json));
}
class/Application.js
class Application{
constructor(json){
this.name = json.name;
this.tenantName = json.tenantName;
this.AccountTotal = json.applicationAccountsTotalCount;
}
getTotal(){
return this.AccountTotal;
}
}
Discussion