SDKを使用した各メータリングAPIのLaravel実装サンプルとメータリングAPIを利用した機能の一例を記載します。
それぞれのAPIの詳細はAPIドキュメントをご確認ください。
Laravel実装サンプル
指定した日付のメータリングユニットカウントを取得
APIドキュメントユースケース
テナント向けに使用量を見せたい場合などに使用してください。
実装サンプル
- PHP
/**
* 指定した日付のメータリングユニットカウントを取得
*
* @param string $tenantId テナントID
* @param string $meteringUnitName メータリングユニット名
* @param string $date 日付 yyyy-mm-dd形式
* @return array
*/
public function getCountOfSpecifiedDate(string $tenantId, string $meteringUnitName, string $date)
{
$client = new \AntiPatternInc\Saasus\Api\Client();
$pricingApi = $client->getPricingClient();
$unitCount = $pricingApi->getMeteringUnitDateCountByTenantIdAndUnitNameAndDate(
$tenantId,
$meteringUnitName,
$date
);
return [
'count' => $unitCount->getCount(),
'date' => $unitCount->getDate(),
'meteringUnitName' => $unitCount->getMeteringUnitName(),
];
}
指定したタイムスタンプのメータリングユニットカウントを更新
APIドキュメントユースケース
過去のデータで使用量の更新ミスがあった場合に調整する場合などに使用してください。
実装サンプル
- PHP
/**
* 指定したタイムスタンプのメータリングユニットカウントを更新
*
* @param string $tenantId テナントID
* @param string $meteringUnitName メータリングユニット名
* @param int $timestamp タイムスタンプ 秒までのタイムスタンプ
* @param Request $request
* @return array
*/
public function updateCountOfSpecifiedTimestamp(string $tenantId, string $meteringUnitName, int $timestamp, Request $request)
{
// リクエストから更新方法と件数を取得
['method' => $method, 'count' => $count] = $request->only(['method', 'count']);
$updateMeteringUnitTimeStampParam = new UpdateMeteringUnitTimestampCountParam();
$updateMeteringUnitTimeStampParam->setMethod($method)
->setCount($count);
$unitCount = $this->saasusClient->getPricingClient()->updateMeteringUnitTimestampCount(
$tenantId, $meteringUnitName, $timestamp,
$updateMeteringUnitTimeStampParam
);
return [
'count' => $unitCount->getCount(),
'timestamp' => $unitCount->getTimestamp(),
'meteringUnitName' => $unitCount->getMeteringUnitName(),
];
}
指定したタイムスタンプのメータリングユニットカウントを削除
APIドキュメントユースケース
過去のデータで使用量の更新ミスがあった場合に調整する場合などに使用してください。
実装サンプル
- PHP
/**
* 指定したタイムスタンプのメータリングユニットカウントを削除
*
* @param string $tenantId テナントID
* @param string $meteringUnitName メータリングユニット名
* @param int $timestamp タイムスタンプ 秒までのタイムスタンプ
* @return array
*/
public function deleteCountOfSpecifiedTimestamp(string $tenantId, string $meteringUnitName, int $timestamp)
{
$client = new \AntiPatternInc\Saasus\Api\Client();
$pricingApi = $client->getPricingClient();
$pricingApi->deleteMeteringUnitTimestampCount(
$tenantId, $meteringUnitName, $timestamp
);
return ['status' => 'success'];
}