🙆‍♀️

bundleで各アプリのアカウント数を取得する

2024/11/20に公開

はじめに

SaaSによってはアカウント数上限が設定されているものがあり、超える前に契約数を増加させなければならない。その効率化のためにbundleを利用してアカウント数を取得する。
https://bundle.jp/

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