会員一覧取得_API


概要

KIZUNAを利用している監理団体の一覧取得APIです。


エンドポイント

メソッド URI Headers
GET /api/organization/list/{page}/{per_page}?search=〇〇 Default

リクエストパラメーター

パラメーター名 内容 特記
search string 名前/ステータス/作成日 空白区切り でLIKE検索
page int 現在のページ(何回実行したか何P目かを表す) 以降加算されていく
per_page int リクエスト件数(50なら50件返却)
/api/organization/list/0/50?search='テスト監理団体 解約'

{primary} pageが0の時は=1ページ目 / 1の時は2ページ目と同義となる


レスポンス

ステータスコード:200

パラメーター名 内容 特記
id int 監理団体のID
name string 監理団体本社の名称
status string 監理団体の状態 1:未認証 2:認証済 5:利用中 10:アカウント停止 15:解約
created_at string 監理団体作成日(/区切り)
{
  "result"   : true,
  "errors"   : "",
  "data"     : {
    'id'        : 1,
    'name'      : 'テスト監理団体'
    'status'    : '利用中'
    'created_at': '2020/03/05'
  },
}

{primary} 何もなければ空配列で返却


データ取得

データ取得SQL

  • $request->get('search')が複数あった場合、[$keyword1, $keyword2...]と、配列にし、検索対象カラムでループします。
  • デリミタ(区切り文字)は半角スペースと全角スペースを対象とします。
  • statusのEnumの文字列の値の配列と$request->get('search')が一致するものを$statusとして取得。
SELECT
    *
FROM
    `organization_views`
WHERE
    (
        `organization_views`.`name` LIKE "%{$keyword1}%"
    OR  `organization_views`.`name` LIKE "%{$keyword2}%"
    OR  ...

    OR  `organization_views`.`status` IN ($status1, $status2, ...)
    )
AND `organization_views`.`deleted_at` IS NULL
ORDER BY
    `organization_views`.`id` DESC
LIMIT $request->route('per_page') OFFSET $request->route('page')

{warning} name, statusのLIKE検索は、GETパラメータsearchが渡されたときのみ必要になります。
statusに関しては、Enumのvalueの値の配列をループし、検索処理を行います。


RUN