【CASEful】 API 仕様書 (1.0.0)

Download OpenAPI specification:Download

事例管理 Web ソリューション(CASEful)の API 仕様書です。
左側のメニューから閲覧したい API を選択してください。

一般向け

プラン一覧

プランのデータを全件返却するAPI

CASEfulDB plans のデータをIDの昇順に、レコードをグルーピングして返却する

グルーピングは以下3つ

  • スペック(specification):ユーザー登録数上限、ストレージ上限
  • 機能(function):各プランでそれぞれ使える機能
  • サポート(support):お問い合わせ窓口

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": [
    ]
}

お問い合わせ送信

お問い合わせで入力されたデータをメールで顧客と運営に送信するAPI

  • お問い合わせ通知(顧客側)

  • お問い合わせ通知(運営側)

  • お立場

    1. 経営者/役員クラス
    2. 部長クラス
    3. 課長/マネージャークラス
    4. 係長/主任/リーダークラス
    5. 一般社員クラス
    6. 代理店/クライアント提案
    7. その他/個人事業主
  • お問い合わせ種別

    1. 新規導入に関してのお問い合わせ
    2. 導入中の操作方法等のお問い合わせ
    3. その他のお問い合わせ
Request Body schema: application/json
name
required
string

お名前

email
required
string

お勤め先のメールアドレス

company_name
required
string

会社名

position_type
required
integer

お立場種別

inquiries_type
required
integer

お問い合わせ種別

inquiries_content
required
string

お問い合わせ内容

agree_flag
required
boolean

プライバシーポリシー同意フラグ

Responses

Request samples

Content type
application/json
{
  • "name": "山田太郎",
  • "email": "sample@example.com",
  • "company_name": "株式会社○○",
  • "position_type": 1,
  • "inquiries_type": 2,
  • "inquiries_content": "サービス内容について教えてください",
  • "agree_flag": true
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(ダッシュボード)

ダッシュボード事例公開ステップ用

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

ダッシュボードの はじめましょう! で使用するデータを取得する

ライトプランのみ処理が少し変化するため注意 (notionを参照)

  • step1: 組織に顧客情報が存在する場合true
  • step2: 組織にレイアウト情報が存在する場合true
  • step3: 組織に事例情報が存在する場合true
  • step4:
    • ライトプラン: 組織に社外公開サイトが存在する場合true
    • ライトプラン以外: 組織に社内共有サイトが存在する場合true
  • step5:
    • ライトプラン: false
    • ライトプラン以外: 組織に社外公開サイトが存在する場合true

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

ダッシュボード事例管理

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]

ダッシュボードの事例管理部分の表示に使用するデータを返却する

クエリの事例検索期間タイプに沿った検索期間でデータを取得する

1: 過去7日間, 2: 過去4週間, 3: 過去3ヶ月, 4: 過去12ヶ月, 5: 今月, 6: 前月

total = 期間の合計

daily = 日毎(社内または社外のcreated_atをY-m-dで集計)

  • number_of_cases = number_of_internal_sharing_cases + number_of_external_disclosure_cases(社内事例数+社外事例数)
  • number_of_internal_sharing_cases = 該当した社内共有事例のレコード数
  • number_of_internal_sharing_case_display = 該当した社内共有事例のうち、display_flag が true のもの
  • number_of_internal_sharing_case_hide = 該当した社内共有事例のうち、display_flag が false のもの
  • number_of_internal_sharing_case_draft= 該当した社内共有事例のうち、draft_flag が true のもの
  • number_of_external_disclosure_cases = 該当した社外公開事例のレコード数
  • number_of_external_disclosure_case_publish = 該当した社外公開事例のうち、publish_flag が true のもの
  • number_of_external_disclosure_case_display = 該当した社外公開事例のうち、display_flag が true のもの
  • number_of_external_disclosure_case_hide = 該当した社外公開事例のうち、display_flag が false のもの
  • number_of_external_disclosure_case_draft = 該当した社外公開事例のうち、draft_flag が true のもの

※社内共有(社外公開)事例数と表示中~下書きの合計数は必ずしも一致するわけではありません(表示中かつ下書き等のデータが存在する為)

query Parameters
search_type
required
string

事例検索期間(1~6)

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

ダッシュボード社外公開

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]

ダッシュボードの社外公開部分に表示するデータを返却する

  • 社外公開サイトマスタから組織に一致するデータを登録日時(created_at)の昇順で全件返却

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

ダッシュボード社内共有

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]

ダッシュボードの社内共有部分に表示するデータを返却する

  1. 社内サイト

    • 社内共有サイトマスタから組織に一致するデータを登録日時(created_at)の昇順で全件返却
  2. 参考になった社内事例

    • 社内事例データを取得して返却
      • 社内共有事例マスタ、社内共有事例詳細マスタ、社内共有サイトマスタから必要なデータを取得する。
      • 社内共有事例マスタのlikes(いいね)の降順で最大10件取得する。
      • 社内共有事例マスタのdata_created_at(実データ作成日時)に値があるレコードのみ取得する。
    • private_case_url: {社内サイトURL}/cases/{社内共有事例ID}

Responses

Response samples

Content type
application/json
{}

利用者向け(利用者)

ユーザー一覧取得

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者) [401]

『ユーザー管理』画面表示時に実行するAPI
ユーザー数上限とユーザー数についてはユーザー登録数上限チェックAPIを使用する
登録順(IDの昇順)に返却する

  1. ログイン認証・権限チェック(所有者・管理者のみ可)
  2. organization_idを基にユーザーマスタから一致するレコードを全て抽出
  3. レスポンスの値を作成
    • id:users.id
    • full_name:users.full_name
    • email:users.email
    • classification_code:users.classification_code
    • invitation_flag:users.invitation_flag

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": [
    ]
}

ユーザー追加

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • ユーザー数(上限)チェック:組織ユーザー登録数がプラン上限以上の場合エラー [412]
  • バリデーションチェック [422]

  1. ログイン認証・権限チェック(所有者・管理者のみ可)
  2. バリデーションチェック
  3. ユーザー数(上限)チェック
  4. CASEfulDB ユーザーマスタに登録
  5. Intercom 用に、ハッシュ化したユーザーIDを生成する
  6. Auth0 Users にユーザーを追加
  7. CASEfulDB の以下の値を更新する
    • intercom_user_id_hash => 5で生成したハッシュ値
    • auth0_user_id => 6で追加した Auth0 Users のID
  8. 組織のユーザー登録数に+1
  9. 組織に Auth0 Organizations が存在する場合、4のユーザーを追加
  10. 4のユーザーのメールアドレス宛に『招待状通知メール』 を送信
query Parameters
full_name
required
string <= 128 characters
Example: full_name=山田太郎

名前

full_name_furigana
required
string <= 128 characters ^[\u30A0-\u30FF]+$
Example: full_name_furigana=ヤマダタロウ

フリガナ

email
required
string <= 256 characters
Example: email=sample@example.com

メールアドレス

classification_code
required
integer
Enum: 3 4
Example: classification_code=4

ユーザーの権限区分 1:運営者 2:所有者 3:管理者 4:閲覧者

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

ユーザー詳細取得

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]
  • ログインユーザーが管理者で、取得するデータが所有者の場合はエラー [404]

『ユーザー変更』画面等、ユーザーの詳細情報取得に使用するAPI

  1. ログイン認証・権限チェック(所有者・管理者のみ可)
  2. user_idを基にユーザマスタからユーザー情報を取得
  3. ユーザーが管理者の場合は、取得したユーザーの権限が所有者か否かをチェック(所有者の場合はエラーを返却)
  4. ユーザーが所有者の場合は組織マスタIDを基に、組織マスタから組織名(会社名)を取得
  5. レスポンスを作成
    • full_name:users.full_name
    • full_name_furigana:users.full_name_furigana
    • email:users.email
    • password:****(アスタリスク12文字を固定で返却)
    • classification_code:users.classification_code
    • organization_name:classification_codeが2の時のみorganizations.organization_name、それ以外はnull
path Parameters
user_id
required
integer

ユーザマスタID

Responses

Response samples

Content type
application/json
Example
{
  • "message": "OK",
  • "data": {
    }
}

ユーザー削除

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]
  • ログインユーザーが対象のデータを削除可能かどうかのチェック [412]

ユーザー管理画面で『削除する』を押下された場合に実行するAPI

  1. ログイン認証・権限チェック(所有者・管理者のみ可)
  2. user_idを基に削除予定ユーザー情報を取得
  3. 削除しようとしているユーザーが、ログインユーザー自身、もしくは所有者の場合は、エラーを返却し、削除処理を行わない
  4. CASEfulDB ユーザーマスタからユーザーIDに一致するレコードを削除
  5. CASEfulDB で、削除したユーザーの組織マスタIDと一致する組織マスタのユーザー登録数を-1
  6. Auth0 Users のユーザー情報を削除
path Parameters
user_id
required
integer

ユーザマスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

ユーザー情報更新

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者、会社名の場合は所有者のみ) [401]
  • データ存在チェック [404]
  • ログインユーザーが対象のデータを更新可能かどうかのチェック [412]
  • バリデーションチェック [422]

ユーザーの名前、フリガナ、会社名(所有者のみ)、権限のみ変更可能
バリデーションはrequiredではなくfilledを使用して、項目がある場合は空を許可しないようにする
メールアドレス変更はメールアドレス変更(再設定)APIで実行する
パスワード変更はパスワード設定API(再設定の場合はパスワード再設定メール送信API経由)で実行する

  1. ログイン認証・権限チェック(所有者・管理者のみ可)
  2. バリデーションチェック
  3. パラメータに存在する項目だけユーザーマスタを更新する(名前だけの場合は名前だけ更新)
  4. (組織名の更新の場合)Auth0 Organization と Stripe Customer を更新する(どちらもIDが存在する場合のみ)

※自分以外の更新も可能なため、更新対象ユーザー(user_id(@param))とログインユーザーが別の場合もある

path Parameters
user_id
required
integer

ユーザマスタID

query Parameters
full_name
string <= 128 characters
Example: full_name=山田太郎

名前

full_name_furigana
string <= 128 characters ^[\u30A0-\u30FF]+$
Example: full_name_furigana=ヤマダタロウ

フリガナ

organization_name
string

組織名(会社名)

classification_code
integer
Enum: 3 4
Example: classification_code=4

ユーザーの権限区分 1:運営者 2:所有者 3:管理者 4:閲覧者

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

メールアドレス変更(再設定)

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]
  • 所有者以外のユーザーが、所有者のデータを変更しようとしているかチェック [412]
  • バリデーションチェック [422]

ユーザー情報画面でメールアドレス変更時に実行されるAPI

  1. ログイン認証・権限チェック(所有者・管理者のみ)
  2. バリデーションチェック
  3. Auth0のログイン認証を実行:認証失敗で401エラー
  4. Auth0 Users のメールアドレスを変更
  5. メール有効期限テーブルに、変更対象のユーザーIDと、メールのハッシュ値を生成して追加する
  6. 変更したメールアドレス宛に『メールアドレス変更受付メール』を送信

※自分以外の更新も可能なため、更新対象ユーザー(user_id(@param))とログインユーザーが別の場合もある

path Parameters
user_id
required
integer

ユーザーマスタID

query Parameters
email
required
string
Example: email=user1234@domain.com

変更後のメールアドレス

password
required
string
Example: password=password

現在のパスワード

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

パスワード設定(再設定)API

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

新規登録メール経由のログインや、招待メール経由のログイン、パスワード再設定メール経由のパスワード再設定等、パスワード変更時に使用するAPI

  1. バリデーションチェック
  2. メール有効期限テーブルから、メールのハッシュ値と一致するデータを取得する
    • データがない場合、もしくは有効期限切れの場合は、404エラーを返却する
  3. 変更しようとしているユーザーの仮登録フラグ(provisional_registration_flag)と招待中フラグ(invitation_flag)の値を参照し、以下の処理を行う。
    • どちらかが true の場合は、『初回パスワード設定の場合』の処理を行う
    • それ以外は、『パスワード再設定の場合』の処理を行う

初回パスワード設定の場合

  1. ユーザーマスタの仮登録フラグ(provisional_registration_flag)と招待中フラグ(invitation_flag)を false に変更する
  2. メール有効期限テーブルからレコードを削除する
  3. 組織のアカウントステータスを無効(4)から有効(1)に変更し、deleted_at を null に変更する
  4. Auth0 Users でメールアドレスの検証を行い、成功したらパスワードを更新する

パスワード再設定の場合

  1. メール有効期限テーブルからレコードを削除する
  2. Auth0 Users のパスワードを更新する
path Parameters
user_id
required
integer
query Parameters
password
required
string

パスワード

password_confirmation
required
string

パスワード確認

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

招待メール再送信

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

ユーザー管理画面で『再度招待する』ボタンを押下した際に実行するAPI

  1. ログイン認証・権限チェック(所有者・管理者のみ可)
  2. user_idを基にメールアドレスを取得し、そのメールアドレス宛に 『招待状通知メール』を送信する
  3. メールアドレス有効期限テーブルにデータを追加する
path Parameters
user_id
required
integer

ユーザーマスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

パスワード再設定メール送信

  • バリデーションチェック [422]

ログイン画面からの『パスワードを忘れた方』、ユーザー管理画面のパスワード欄の『再設定する』で、パスワードを再設定する際に実行するAPI

  1. パラメータのメールアドレスに紐づくユーザーが、仮登録中、または招待中のユーザーかチェックする
    • 仮登録中、または招待中のユーザーの場合は、422エラーを返却する
      email:『ご入力いただいたメールアドレスはパスワード設定が行われていません。』
  2. メール有効期限テーブルにデータを追加
  3. パラメータで渡されたメールアドレスのユーザー宛に、『パスワードリセット通知メール』送信
query Parameters
email
required
string
Example: email=user@domain.com

メールアドレス

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(契約情報)

契約情報取得

  • ログイン認証 [401]
  • 権限チェック(所有者のみ) [401]

契約情報画面で使用するAPI
プランやプラン内容、契約者情報等を返却する

  • ユーザーの組織IDを取得し、組織IDに紐づく組織情報、契約情報、契約中プラン情報を取得する
  • レスポンスを生成して返却する

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

契約情報更新

  • ログイン認証 [401]
  • 権限チェック(所有者のみ) [401]
  • バリデーションチェック [422]

query Parameters
organization_category_code
required
integer

組織区分

organization_name
required
string

組織名(会社名)

send_receipt_email
string

領収書送付メールアドレス

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

プラン変更確認

  • ログイン認証 [401]
  • 権限チェック(所有者のみ) [401]
  • ユーザー登録数、ストレージ容量チェック [412]
  • プラン変更チェック [412]
  • バリデーションチェック [422]

  • ユーザーの組織IDに紐づく、組織情報と契約情報を取得する
  • ユーザー登録数、ストレージ容量チェック
  • ダウングレードフラグ(downgrade_flag)が true の場合は、プラン変更予約中のため、エラーを返す
    412:『プラン変更予約中のため変更できません』
  • 退会フラグ(withdrawal_flag)が true の場合は、退会予約中のため、エラーを返す
    412:『退会予約中のため変更できません』
  • 契約中のプラン情報を取得
  • 変更予定のプラン情報を取得
  • グレード変更確認を行う(アップ・ダウン・変化なし)
  • Stripe連携(retrieve-subscriptionとupcoming-invoiceを使用して請求書のプレビューをする)
  • レスポンスを生成して、返却する
query Parameters
change_datetime
required
string

プラン変更日時(請求に関係するので非常に重要)

plan_id
required
integer
Example: plan_id=2

変更後プランID

payment_method_category
required
integer
Example: payment_method_category=3

支払い方法 1: トライアル 2: 年払い 3: 月払い

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

プラン変更

  • ログイン認証 [401]
  • 権限チェック(所有者のみ) [401]
  • ユーザー登録数、ストレージ容量チェック [412]
  • プラン変更チェック [412]
  • バリデーションチェック [422]

※パラメータのプラン変更日時はプラン変更確認APIで使用した値と同じものを渡すこと(秒割の関係上、別の値を渡すとプレビューと実請求額が変化してしまうため)

  1. ユーザーの組織IDに紐づく、組織情報と契約情報を取得する

  2. ユーザー登録数、ストレージ容量チェック

  3. ダウングレードフラグ(downgrade_flag)が true の場合は、プラン変更予約中のため、エラーを返す
    412:『プラン変更予約中のため変更できません』

  4. 退会フラグ(withdrawal_flag)が true の場合は、退会予約中のため、エラーを返す
    412:『退会予約中のため変更できません』

  5. 変更予定のプラン情報を取得

  6. グレード変更確認を行う(アップ・ダウン・変化なし)

  7. Stripe連携及びCASEfulDB更新(グレード変更タイプや支払いサイクルによって処理が変わる)

    グレード サイクル 実行請求処理
    アップ ALL 即時請求
    ダウン ALL 期間満了後請求
    変化なし 月→年 即時請求
    変化なし 年→月 期間満了後請求
    変化なし 変化なし エラー(変更なし)

    ※年払いから月払いの上位グレード変更はダウングレード扱い
    ※トライアル期間中は請求なしでプラン変更

  8. メール送信

query Parameters
change_datetime
required
string

プラン変更日時

plan_id
required
integer
Example: plan_id=2

変更後プランID

payment_method_category
required
integer
Example: payment_method_category=3

支払い方法 1: トライアル 2: 年払い 3: 月払い

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

プラン変更キャンセル(ダウングレードキャンセル)

  • ログイン認証 [401]
  • 権限チェック(所有者のみ) [401]
  • 変更予約中チェック(DB内ダウングレードフラグがtrueか) [412]

期間満了後請求(プラン変更予約中)のプラン変更をキャンセルする

  1. プラン変更予約時に設定した情報を全てnullに変更する
  2. Stripe側プラン変更スケジュール情報を取得
  3. 2で取得したスケジュール変更を削除する(release-subscription-schedule)※Cancelは現在契約中のプランもキャンセルしてしまうので間違えないこと
  4. ダウングレード予約取消完了メールを送信

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(お支払い方法)

支払い方法取得

  • ログイン認証 [401]
  • 権限チェック(所有者のみ) [401]
  • データ存在チェック [404]
  • プラン存在チェック [412]

組織の支払い情報を取得するAPI

  1. 組織IDを基に、Stripe連携顧客ID( stripe_customer_id ) を取得する (退会予約中の場合は 404エラーを返却する)
  2. 次回お支払い情報を取得する
    1. 1で取得したStripe連携顧客IDを基に、顧客の次回請求内容 (Stripeのupcoming invoice) を取得する(※1参照)
    2. 1で取得したStripe連携顧客IDを基に、Stripe側顧客データ・Stripe側カードID・顧客のカード情報を取得する(※2参照)
    3. 2-1で取得した顧客の次回請求内容からStripe側PlanID、支払いサイクル、次回お支払い額、次回お支払い日取得する
  3. 2-3で取得した支払いサイクルを元に 年払い('year')or月払い('month')の情報を取得する
  4. レスポンスデータを返却する

※1.顧客の次回請求内容取得について 顧客の次回請求内容 (Stripeのupcoming invoice)を取得するAPI
※2.クレジットカード情報について

  1. 1で取得したStripe連携顧客IDを基に、Stripe側顧客情を取得する
  2. Stripe顧客情報から顧客に紐づくカードIDを取得する
  3. カードIDを基にカード情報を取得する
    Stripe側顧客データを取得するAPI
    顧客のカード情報を取得するAPI

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

支払い方法変更

  • ログイン認証 [401]
  • 権限チェック(所有者のみ) [401]
  • カードチェック(stripe) [412]

支払い方法変更(カード変更)を行うAPI

  1. 組織IDを基に、Stripe連携顧客ID( stripe_customer_id ) を取得する
  2. 1を使用してcustomerのカード情報を更新する(カード情報の置換) customer更新API
query Parameters
credit_token
required
string

クレジットカードのトークン

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(お支払い履歴)

支払い履歴取得

  • ログイン認証 [401]
  • 権限チェック(所有者のみ) [401]

契約情報画面のお支払い履歴を表示する際に使用するAPI

  • 支払い履歴テーブル(payment_histories)から組織マスタIDを基に過去の支払い情報の降順に全件取得する(支払日の最新順)
  • レスポンスデータを作成し返却する(key名はカラム名と全て同じ)

Responses

Response samples

Content type
application/json
{}

利用者向け(退会)

退会確認API

  • ログイン認証 [401]
  • 権限チェック(所有者のみ) [401]

トライアル期間中(正式登録済み含む)

  1. 契約満了日:withdrawal_date(now:即時退会の為、現在時刻)

正式登録(決済完了)後

  1. 契約情報取得
  2. 取得した契約情報らStripe側定期契約ID(stripe_subscription_id)を取得
  3. 取得したStripe側定期契約IDを基にStripeから定期支払情報を取得する
  4. 取得した定期支払情報から契約期間終了日を取得し、利用期間満了日として代入
  • レスポンスデータ返却

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

退会予約API

  • ログイン認証 [401]
  • 権限チェック(所有者のみ) [401]
  • ダウングレード予約チェック(ダウングレード予約中は退会できない)※Stripeのスケジュールを重複して作成できない為 [412]
  • バリデーションチェック [422]

トライアル期間中(正式登録済み含む)

  1. Auth0のログイン認証を実行:認証失敗で401エラー
  2. 契約情報マスタの退会受付中フラグ(withdrawal_flag)をtrue、契約満了日(expiration_date)をexpiration_date(@param)で更新
  3. CASEful DBの所有者以外の利用者情報削除、伴うAuth0のユーザー情報を削除
  4. (データが存在していれば)Auth0Organizationの削除,StripeSubscriptionの解約
  5. トライアル期間中:退会受付完了メールを送信

正式登録(決済完了)後

  1. Auth0のログイン認証を実行:認証失敗で401エラー
  2. 契約情報マスタの退会受付中フラグ(withdrawal_flag)をtrue、契約満了日(expiration_date)をexpiration_date(@param)で更新
  3. 退会予約を契約履歴に保存
  4. サブスクリプションを終了日にキャンセルするようサブスクリプション情報を更新
  5. 退会予約完了通知メールを送信
  • Auth0で認証エラーが発生した場合は、422エラーを返却する
    • too_many_attempts (アカウントがブロックされているとき)の場合
      • password:『アカウントがブロックされたため変更できません。\nご登録のメールアドレス宛に送信されたメールをご確認ください。』
    • 上記以外の場合
      • password:『認証エラーが発生しました。』
query Parameters
password
required
string

パスワード

expiration_date
required
string
Example: expiration_date=2021-08-11 11:25:19

契約満了日時(退会確認APIで返却されたもの)

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

退会キャンセルAPI

  • ログイン認証 [401]
  • 権限チェック(所有者のみ) [401]
  • 契約満了日超過チェック [412]

  1. 契約情報マスタの退会受付中フラグ(withdrawal_flag)をfalse、契約満了日(expiration_date)をnullで更新
  2. 退会予約キャンセルを履歴に残す
  3. サブスクリプションを終了日にキャンセルしないようサブスクリプション情報を更新
  4. 退会予約取消完了通知メールを送信

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

トライアル終了後退会予約API

  • ログイン認証 [401]
  • 権限チェック(所有者のみ)[401]
  • バリデーションチェック [422]

  1. agreement_flagがtrue以外の場合はバリデーションエラー
  2. 契約情報マスタの退会受付中フラグ(withdrawal_flag)をtrue、契約満了日(expiration_date)をnowで更新
  3. CASEful DB の組織に基づく所有者以外のユーザーを削除する
  4. auth0 のユーザーを全削除
  5. トライアル期間中:退会受付完了メールを送信
query Parameters
agreement_flag
string

同意フラグ

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(チェック系)

ユーザー登録数上限チェック

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]

組織のユーザー登録状況をチェックするAPI

  1. ログイン認証・権限チェック
  2. レスポンスの作成
    • number_of_users:組織ID→契約情報マスタ.プランID→プランマスタ.ユーザー数
    • number_of_registrants:組織ID→組織マスタ.ユーザー登録数
    • reached_the_limit_flag:number_of_usersとnumber_of_registrantsを比較して、number_of_registrantsがnumber_of_users以上の場合はtrue、そうではない場合false

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

ストレージ容量上限チェック

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]

  1. 契約中プランのストレージ容量を取得(plans.storage)
  2. 組織のストレージにあるテキストファイル以外のファイルサイズを計算
  3. 組織ストレージ容量が契約中プランのストレージ容量以上か確認しレスポンスを返却
    • storage:1の値
    • organization_storage:2の値をGB単位に変換(小数点第2位以下切り上げ)
    • reached_the_limit_flag:2の値が1の値より多いまたは同量だった場合true(B単位で比較)

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

メール有効期限チェック

  • データ存在チェック [404]

  • 有効期限が切れていない場合は200
  • 有効期限が切れている(この際レコードの削除と関連データの削除が存在する場合実行)、レコードが見つからない場合は404
query Parameters
mail_hash
required
string

メールについているハッシュ値

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

ユニークバリデーションチェック

  • バリデーションチェック [422]

パラメータの値が該当のDBで重複していないか確認するAPI

パラメータの値が存在する場合のみチェックを行う

idがある場合はidのデータ以外で重複チェックを行う(idに紐づくデータは重複とみなさない)

ユニーク判定を必要とする項目

  • email:users.email
  • customer_name:customers.customer_name(組織単位)
  • id:users.id | customers.id(更新時に必要な場合)
query Parameters
email
string

メールアドレス

customer_name
string

顧客名

id
string

更新時ID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

新規登録メールアドレスチェック

  • バリデーションチェック [422]

新規登録時のメールアドレス重複チェックを行う

ただし、DBに存在しているメールアドレスであっても、退会済みの再登録ユーザーは重複していないとみなす

DB(users)にパラメータと同じメールアドレスが存在する場合

  • 再登録(退会済み)のユーザーかチェック
    • 再登録ユーザーの場合は200を返却する
    • 再登録ユーザーではない場合422を返却する(トライアル期間中・トライアル期間外・正式登録済み)

DB(users)にメールアドレスが存在しない場合

  • 200を返却する
query Parameters
email
string

メールアドレス

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(未分類)

ログインAPI

  • メールアドレスに一致するユーザーが存在するかチェック [401]
  • データ存在チェック [404]
  • バリデーションチェック [422]

Auth0を使用したログインを行う

  • メールハッシュ値がパラメータに含まれている場合は、メールアドレス確認とみなし、以下の処理を行う
    • ユーザー情報を、新規メールアドレスで更新
    • メール有効期限テーブルから、レコードを削除
    • メールアドレスを更新したユーザーが所有者の場合は、 Stripe の顧客情報を更新
  • Auth0で認証エラーが発生した場合は、422エラーを返却する
    • too_many_attempts (アカウントがブロックされているとき)の場合
      • password:『アカウントがブロックされたためログインできません。\nご登録のメールアドレス宛に送信されたメールをご確認ください。』
    • その他の場合
      • password:『認証エラーが発生しました。』
query Parameters
email
required
string

メールアドレス

password
required
string

パスワード

mail_hash
string

メールハッシュ値

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

ログイン情報取得API

  • ログインチェック [401]

既にログイン済みの場合、ログイン情報を取得して返却するAPI

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

新規登録API

  • ログイン画面遷移フラグがリクエストに付与されているかチェック [300]
  • バリデーションチェック [422]

新規登録押下時に実行されるAPI

  • ログイン画面遷移フラグ(to_login)がリクエストに付与されている場合、300エラーを返却する
  • ログイン画面遷移フラグが付与されていないとき、以下の処理を行う

ユーザーマスタに、所有者としてユーザーが存在しない場合(新規登録)

  1. 組織マスタ仮登録
    • 組織名:organization_name(@param)
    • アカウント状態:無効(4)
  2. 組織マスタ仮登録後、IDを取得して以下の値を更新
    • 組織用ストレージパス:"/uploads/{uuid}"
  3. ユーザーマスタ仮登録
    • 権限:所有者(2)
    • 名前:full_name(@param)
    • フリガナ:full_name_furigana(@param)
    • メールアドレス:email(@param)
    • 仮登録フラグ:true
    • 組織ID:組織マスタ仮登録後のID
  4. 契約情報マスタ登録
    • プランマスタID:plan_id(@param)
    • 支払方法区分:1(トライアル)
    • トライアルFrom:登録日時
    • トライアルTo:登録日時+30日
    • 支払期間From:null
    • 支払期間To:null
    • 次回支払日時:null
    • 予約イベントタイプ:registration
    • 組織ID:組織マスタ仮登録後のID
  5. 契約情報履歴に履歴を登録
    • プランマスタID:plan_id(@param)
    • 支払方法区分:1(トライアル)
  6. Intercom 用に、ハッシュ化したユーザーIDを生成する
  7. Auth0 Users にユーザーを登録する
    • 名前:full_name(@param)
    • メールアドレス:email(@param)
    • パスワード:ランダムな12桁の文字列(後ほどユーザーが値を設定する)
  8. ユーザーマスタの以下の値を更新する
    • auth0_user_id:Auth0 Users 登録後のID
    • intercom_user_id_hash:6で生成したハッシュ値
  9. パラメータのメールアドレス宛に、『新規登録招待状通知メール』を送信する

ユーザーマスタに、既に所有者が存在する場合(退会済み)

  • 既に所有者が存在する場合(退会済み)、再登録処理を行う
    1. email から、所有者ユーザーの情報を取得する
    2. 所有者ユーザーの組織情報、契約情報を取得
    3. 以下のデータを更新する
      • CASEful DB
        • 組織マスタ
          • 組織名:organization_name(@param)
          • ユーザー登録数:1
          • 組織ストレージファイルサイズ:0
          • アカウント状態:無効(4)
        • ユーザー情報マスタ
          • 権限:所有者(2)
          • 名前:full_name(@param)
          • フリガナ:full_name_furigana(@param)
          • 仮登録フラグ:true
        • 契約情報マスタ
          • プランID:plan_id(@param) | プレミアムプラン(3)
          • 支払方法区分: payment_meyhod_category(@param) | 月払い(3)
          • 支払期間From:null
          • 支払期間To:null
          • 次回支払日時:null
          • 予約イベントタイプ:reregistration
      • Auth0 Users にユーザーを仮登録
        • 名前:full_name(@param)
        • メールアドレス:email(@param)
        • パスワード:ランダムな12桁の文字列(後ほどユーザーが値を設定する)
      • ユーザー情報マスタの auth0_user_id を更新する
    4. 『新規登録招待状通知メール』を送信する
query Parameters
full_name
required
string <= 128 characters
Example: full_name=山田太郎

名前

full_name_furigana
required
string <= 128 characters ^[\u30A0-\u30FF]+$
Example: full_name_furigana=ヤマダタロウ

フリガナ

organization_name
string <= 256 characters
Example: organization_name=株式会社シンベスト

組織名(会社名)

email
required
string <= 256 characters
Example: email=sample@example.com

メールアドレス

plan_id
required
string

プランID

to_login
boolean

ログイン画面遷移フラグ

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

閲覧ユーザー向け社内共有サイト一覧

  • ログインチェック [401]
  • 権限チェック(運営者以外) [401]
  • 存在チェック [404]
  • プランチェック [412]

ユーザーの組織に紐づく社内共有サイト情報とロゴを返却するAPI

  • internal_sharing_site_logo_file_path:organizations.internal_sharing_site_logo_file_path
  • resize、webpの画像については、オリジナル画像パスのuploads部分を置き換える必要がある
    各種置き換えについては、社内共有サイトロゴ設定の※1の表を参照

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

プラン一覧取得

  • ログインチェック [401]
  • 権限チェック(所有者のみ) [401]

プラン情報を取得するAPI
正式登録時やプラン変更時等、プラン選択画面で使用する

  1. プランマスタ(plans)のデータを全て取得し、レスポンスを返却する(keyは全てカラム名と同じ)
    • contracted_plan_flag:契約中のプランの場合は true
    • reached_user_limit_flag:ユーザー上限を超えている場合は true
    • reached_storage_limit_flag:ストレージ上限を超えている場合は true

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": [
    ]
}

正式登録情報確認API

  • ログイン認証 [401]
  • 権限チェック(所有者のみ) [401]
  • 正式登録済みチェック [412]
  • バリデーションチェック [422]

正式登録ステップ3・アカウント再開の上部に表示するデータを取得する

  1. organization_idを基に契約情報を取得する
  2. plan_idを基にプラン情報を取得する
  3. レスポンスを返却※パラメータそのまま使用する箇所有
    • プラン名:plans.plan_name
    • 支払い方法区分:payment_method_category(@param)
    • 支払い期間From:contracs.trial_toが現時刻より前ならcontracs.trial_to、そうでなければ現時刻
    • 支払い期間To:支払方法From+ 1year or 1month
    • プラン料金:
      • payment_method_category(@param)が2ならplans.annual_fee_including_tax
      • payment_method_category(@param)が3ならplans.monthly_fee_including_tax
    • 組織名(会社名):organization_name(@param)
query Parameters
plan_id
required
integer

プランマスタID

payment_method_category
required
integer

支払方法区分

organization_name
required
string

組織名(会社名)

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

正式登録

  • ログイン認証 [401]
  • 権限チェック(所有者のみ) [401]
  • 正式登録済みチェック [412]
  • 人数上限チェック・容量チェック [412]
  • バリデーションチェック(stepによりチェック内容が異なる) [422]

ステップ1:validation_stepを1に設定し実行する
ステップ2:validation_stepを2に設定し実行する
※ステップ2からステップ3に移動する際に正式登録情報確認APIを実行する(支払い日等の取得の為)
ステップ3:validation_stepを3に設定し実行する

validation_stepについて

ステップ1の段階ではステップ2で入力するパラメータをチェックしない、等の制御に使用する(required_if等を使用する)

step1,step2

バリデーションチェックのみ行う

  • step1:plan_id,payment_method_categoryが必須
  • step2:step1に加え、organization_category_code,organization_nameが必須

step3

バリデーションチェックと正式登録処理を行う

  • バリデーションチェック:step1,step2に加えcredit_tokenが必須
  • 契約情報マスタ更新
    • プランマスタID:plan_id(@param)
    • 支払い方法区分:payment_method_category(@param)
    • 支払い期間From:トライアル期間中の場合はトライアルToを入れる、そうでない場合は現在日時
    • 支払い期間To:支払い期間From + 1year or 1month
    • 次回支払い日時:支払い期間Toと同じ
    • 領収書送付先アドレス:send_receipt_email(@param)がある場合のみ
  • 組織マスタ更新
    • 組織区分コード(契約者情報):organization_category_code(@param)
    • 組織名(会社名):organization_name(@param)
  • Auth0連携(プランが1以外の場合のみ)
    • Auth0のOrganizationsに追加(organization_name = 組織ID + 組織作成年 + 01)
    • organization_id(@param)に一致するユーザーを全て取得し、上記で作成したAuth0のOrganizationに紐付ける
  • Stripe連携
    • Customerの作成(顧客のメールアドレスsend_receipt_emailがある場合は指定、ない場合は所有者のemail)
    • Subscriptionの契約
  • Auth0OrganizationsIDは組織マスタ、StripeCustomersID,StripeSubscriptionIDは契約情報マスタの該当カラムを更新
query Parameters
validation_step
required
integer
Example: validation_step=1

チェックするステップを数値で入れる

plan_id
required
integer
Example: plan_id=1

プランマスタID

payment_method_category
required
integer
Example: payment_method_category=2

支払い方法 1: トライアル 2: 年払い 3: 月払い

organization_category_code
required
integer
Example: organization_category_code=1

組織の区分 1: 法人/団体 2: 個人/個人事業主

organization_name
required
string
Example: organization_name=株式会社シンベスト

組織名(会社名)

credit_token
required
string

Stripeから返却されるクレジットカードのトークン

send_receipt_email
string

送付先アドレス

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

アカウント再開API

  • ログイン認証 [401]
  • 権限チェック(所有者のみ) [401]
  • アカウント再開が可能かチェック [412]
  • バリデーションチェック [422]

  • 契約情報マスタの満了日(expiration_date)を null に更新する
  • 組織マスタのアカウント状態(account_status)を、有効(1)に更新する
  • 契約しようとしているプランがライトプランかつ、 Auth0 Organization のIDが存在する場合
    • Auth0 Organization の組織データを削除する
  • 契約しようとしているプランがライトプラン以外かつ、Auth0 Organization のIDが存在しない場合
    • Auth0 Organization の組織データを追加する
  • Stripe に登録しているカード情報を更新し、Stripe Subscription(定期支払い)を追加する
  • 『アカウント再開通知メール』を送信する
query Parameters
credit_token
required
string

Stripeから発行されるクレジットカードトークン

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(顧客)

顧客一覧

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]

※フロント側で検索・ソートを行う

レスポンスを返却

  • 'id': 顧客ID(customers.id)
  • 'customer_name': 顧客名(customers.customer_name)
  • 'customer_anonymous': 匿名顧客名(customers.customer_anonymous)
  • 'logo_registered_flag': ロゴ登録済みフラグ(customers.logo_file_pathがnullじゃなければtrue)
  • 'case_publication_status': 顧客事例公開ステータス(customers.case_publication_status)
  • 'attachment_registered_flag': 添付ファイル登録済みフラグ(customer_attachmentsにcustomers.idと一致するcustomer_idが存在していればtrue)
  • 'updated_at': 更新日(customers.updated_at)
  • 'case_registered_flag': 事例登録済みフラグ (casesにcustomers.idと一致するcustomer_idが存在していればtrue)

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": [
    ]
}

顧客追加

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ)[401]
  • データ存在チェック [404]
  • ストレージ容量チェック(ロゴ画像・添付ファイルが存在する場合) [412]
  • バリデーションチェック [422]
  • ウィルスチェック(ロゴ画像・添付ファイルが存在する場合) [422]

  • 顧客マスタに追加
  • ロゴ画像が添付された場合
    • Amazon s3 のオリジナル画像保存用ディレクトリ配下にロゴ画像(オリジナルファイル)を追加する
      {バケット名}{組織のorganization_storage_path(※1参照)}/customer_logo/ .....
    • DBの顧客マスタのロゴファイルパスカラム(logo_file_path)に、ロゴ画像のオリジナル画像パスを追加する
  • 添付ファイルが添付された場合
    • Amazon s3 のオリジナルファイル保存用ディレクトリ配下に添付ファイルを追加
      {バケット名}{組織のorganization_storage_path(※1参照)}/customer_attachment/ .....
    • DBの顧客添付マスタに オリジナル添付ファイル名・オリジナル添付ファイルパス・添付ファイルサイズ を追加する

※1:ロゴ画像・添付ファイルで許可している画像が登録された場合、添付された画像のリサイズ・webp形式・サムネイル用画像(リサイズ・webp)をAmazon s3 の 各ディレクトリに保存する。参照先は、Amazon s3 ディレクトリ部分(オリジナル画像の場合は uploads )を置換して保存する(下表参照)

Amazon s3 の 各ディレクトリ 画像の種類
uploads オリジナル画像
resize リサイズ画像
webp Webp画像
tmb_resize リサイズサムネイル画像
tmb_webp Webpサムネイル画像
  • 組織ストレージファイルサイズを更新する
query Parameters
customer_name
required
string
Example: customer_name=株式会社XYZ

顧客名(実名)

customer_anonymous
required
string
Example: customer_anonymous=大手商社X社様

顧客名(匿名)

logo_file
any

ロゴ画像

case_publication_status
required
integer
Example: case_publication_status=1

事例公開前の顧客確認フェーズステータス。 1: 公開可 2: 条件付き可 3: 公開不可 4: 確認中

confirmation_period
string
Example: confirmation_period=2021年4月に書面にて確認済み

確認時期

remarks
string
Example: remarks=掲載条件として、同業種以外であれば公開可

備考

attachments
array

添付ファイル

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

顧客詳細取得

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

  1. 顧客ID(@param)を基に顧客マスタと顧客添付マスタからデータを取得
  2. ロゴファイルや添付ファイルのサイズを取得(フロント側でKB,MB混同しているので変換はフロント側に任せる)
  3. レスポンスを生成
    • logo_file_path:customers.logo_file_path
    • attachment_path:customer_attachments.attachment_path
    • resize、webpの画像については、オリジナル画像パスのuploads部分を置き換える必要がある
      各種置き換えについては、顧客追加APIの※1の表を参照
path Parameters
id
required
integer

顧客ID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

顧客更新

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ)[401]
  • データ存在チェック [404]
  • ストレージ容量チェック(ロゴ画像・添付ファイルが存在する場合) [412]
  • バリデーションチェック [422]
  • ウィルスチェック(ロゴ画像・添付ファイルが存在する場合) [422]

  • 顧客IDに紐づく更新前の顧客データを取得
  • 追加ファイルのファイルサイズを合計する
  • 顧客マスタ・顧客添付ファイルマスタを更新する
  • 事例公開ステータスが「公開不可(3)」「確認中(4)」の場合
    • 顧客IDに紐づく社外公開事例のdisplay_flag(事例表示フラグ)をfalse(非表示)にする
    • 社外公開事例IDに紐づく社外公開事例マスタのデータをすべてを更新する
  • ロゴ画像を削除もしくは別の画像に変更する場合
    • 顧客マスタのロゴファイルパス(logo_file_path)を削除する
    • Amazon s3 の 各ディレクトリ(下表参照)の該当ロゴファイルを削除する
  • 添付ファイルが削除された場合
    • フロントから渡された、削除添付ファイルIDの配列を元に、顧客添付マスタのファイルデータを削除する
    • Amazon s3 の 各ディレクトリ(下表参照)の該当添付ファイルを削除する
  • 新たにロゴ画像が添付された場合
    • Amazon s3 のオリジナル画像保存用ディレクトリ配下にロゴ画像(オリジナルファイル)を追加する
      {バケット名}{組織のorganization_storage_path(※1参照)}/customer_logo/ .....
    • DBの顧客マスタのロゴファイルパスカラム(logo_file_path)に、ロゴ画像のオリジナル画像パスを追加する
  • 新たに添付ファイルが添付された場合
    • Amazon s3 のオリジナルファイル保存用ディレクトリ配下に添付ファイルを追加
      {バケット名}{組織のorganization_storage_path(※1参照)}/customer_attachment/ .....
    • DBの顧客添付マスタに オリジナル添付ファイル名・オリジナル添付ファイルパス・添付ファイルサイズ を追加する

※1:ロゴ画像・添付ファイルで許可している画像が新たに登録された場合、添付された画像のリサイズ・webp形式・サムネイル用画像(リサイズ・webp)をする。参照先は、Amazon s3 ディレクトリ部分(オリジナル画像の場合は uploads )を置換して保存する(下表参照)

Amazon s3 の 各ディレクトリ 画像の種類
uploads オリジナル画像
resize リサイズ画像
webp Webp画像
tmb_resize リサイズサムネイル画像
tmb_webp Webpサムネイル画像
  • 組織ストレージファイルサイズを更新する
path Parameters
id
required
integer

顧客ID

query Parameters
customer_name
required
string
Example: customer_name=株式会社XYZ

顧客名(実名)

customer_anonymous
required
string
Example: customer_anonymous=大手商社X社様

顧客名(匿名)

logo_file
any

ロゴ画像

delete_logo_flag
any
Example: delete_logo_flag=false

ロゴ画像を削除する場合にtrue(削除ではない場合渡さない)

case_publication_status
required
integer
Example: case_publication_status=1

事例公開前の顧客確認フェーズステータス。 1: 公開可 2: 条件付き可 3: 公開不可 4: 確認中

confirmation_period
string
Example: confirmation_period=2021年4月に書面にて確認済み

確認時期

remarks
string
Example: remarks=掲載条件として、同業種以外であれば公開可

備考

attachments
array

添付ファイル

delete_attachments
array
Example: delete_attachments=1&delete_attachments=2&delete_attachments=4

削除する添付ファイルのID配列

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

顧客削除

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]
  • 事例チェック(事例登録済みの場合は削除不可) [412]

  • 顧客IDを基に顧客マスタの顧客データと顧客添付ファイルマスタのデータを削除する
  • ロゴ画像・添付ファイルが登録されていた場合、Amazon s3 の 各ディレクトリ(下表参照)の該当ファイルを削除する
  • 削除処理後、組織ストレージファイルサイズを計算し更新する
Amazon s3 の 各ディレクトリ 画像の種類
uploads オリジナル画像
resize リサイズ画像
webp Webp画像
tmb_resize リサイズサムネイル画像
tmb_webp Webpサムネイル画像
path Parameters
id
required
integer

顧客ID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(レイアウト)

レイアウト一覧取得

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]

社内共有レイアウトマスタと社外共有レイアウトマスタから組織IDに一致するデータを全件取得して、
更新日時の降順でレスポンスを返却する

  • ライトプランの場合は、社内共有レイアウトを取得しない
  • クエリパラメータに値が設定されている場合は、絞り込みを行う
    site_unregistered_flag
    • true の場合
      • 1つのレイアウトを複数サイトに登録しないようにするため、既にサイト登録されているレイアウトを返却しない
      • purpose の値が1の場合は社内共有、2の場合は社外公開のレイアウトに絞り込む
      • id に値が設定されている場合は、一致するレイアウトIDのデータを含める
    • false の場合は、絞り込みを行わない
  • レスポンスの一部の説明
    • number_of_cases_registered:社内・社外事例に登録されている数
    • release_flag:社内共有・社外公開に設定されているか
    • case_registered_flag:社内・社外事例に登録されているか
query Parameters
site_unregistered_flag
boolean

既にサイト登録されているレイアウトを取得しないか否か(true:取得しない、false:取得する)

purpose
number

事例用途(社内共有:1、社外公開:2)

id
number

更新用のレイアウトID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": [
    ]
}

共通スタイルフォント一覧

フォントマスタから全件取得して返却する

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": [
    ]
}

利用者向け(社内用レイアウト)

社内レイアウト登録

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • バリデーションチェック [422]

  1. 社内共有レイアウトマスタに必要なデータを追加
  2. 1で出来た社内共有レイアウトIDを使用して社内共有レイアウト詳細マスタにlayout_detailsのデータを追加

※社内レイアウトの layout_details 内のデータについては、別資料にまとめています

Request Body schema: application/json
layout_name
required
string

レイアウト名

main_color
required
string

メインカラー(共通スタイル)

font_id
required
integer

フォントマスタID(共通スタイル)

required
Array of objects

レイアウト詳細(ブロック情報)

Responses

Request samples

Content type
application/json
{
  • "layout_name": "社内共有用",
  • "main_color": "#e53935",
  • "font_id": 1,
  • "layout_details": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社内レイアウト詳細取得

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

  1. 社内共有レイアウトマスタID(@path)に一致する社内共有レイアウトデータを取得
  2. 社内共有レイアウトマスタID(@path)に一致する社内共有レイアウト詳細データを、ブロックJSONの表示順(block_json->display_order)の昇順 で取得
  3. レスポンスを生成して返却する
path Parameters
id
required
integer

社内共有レイアウトマスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社内レイアウト更新

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]
  • バリデーションチェック [422]

  • 社内共有レイアウトマスタ:更新
  • 社内共有レイアウト詳細マスタ:
    • 社内共有レイアウトマスタIDに一致する社内共有レイアウト詳細マスタデータを全件取得
      • 社内共有レイアウト詳細マスタID(@request)がDBに存在する場合はIDを基に更新(UPDATE)
      • 社内共有レイアウト詳細マスタID(@request)がDBに存在しない場合は必要データと共に追加(INSERT)
      • 社内共有レイアウト詳細マスタIDがDBに存在するが、リクエストに存在しない→該当IDのレコードを削除(DELETE)
        画像データを含むブロックを削除するとき、レイアウトIDに紐づく事例の画像を Amazon S3 から削除(※1参照)して、組織ストレージファイルサイズを更新する
  • 社内共有レイアウト詳細マスタIDに紐づく、社内共有事例詳細のブロック表示順を更新する
  • 更新する社内共有レイアウトを使用している事例で、タイトルブロックにあるアイキャッチ画像パスを更新する

※社内レイアウトの layout_details 内のデータについては、別資料にまとめています

※1

Amazon s3 の 各ディレクトリ 画像の種類
uploads オリジナル画像
resize リサイズ画像
webp Webp画像
tmb_resize リサイズサムネイル画像
tmb_webp Webpサムネイル画像
path Parameters
id
required
integer

社内共有レイアウトマスタID

Request Body schema: application/json
layout_name
required
string

レイアウト名

main_color
required
string

メインカラー(共通スタイル)

font_id
required
integer

フォントマスタID(共通スタイル)

required
Array of objects

レイアウト詳細(ブロック情報)

Responses

Request samples

Content type
application/json
{
  • "layout_name": "社内共有用",
  • "main_color": "#e53935",
  • "font_id": 1,
  • "layout_details": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社内レイアウト削除

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]
  • 事例チェック(事例登録済みの場合は削除不可) [412]

  • 社内共有レイアウトマスタIDに紐づく社内共有事例がある場合は、412エラーを返す
  • 社内共有レイアウトマスタIDを基に、以下のデータを削除する
    • 社内共有レイアウトマスタ
    • 社内共有レイアウト詳細マスタ
    • 社内共有サイトマスタ
path Parameters
id
required
integer

社内共有レイアウトマスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(社外用レイアウト)

社外レイアウト登録

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • バリデーションチェック [422]

  1. 社外公開レイアウトマスタに必要なデータを追加
  2. 1で出来た社外公開レイアウトIDを使用して社外公開レイアウト詳細マスタにlayout_detailsのデータを追加

※社外レイアウトの layout_details 内のデータについては、別資料にまとめています

Request Body schema: application/json
layout_name
required
string

レイアウト名

background_color
required
string

背景カラー

font_color
required
string

文字カラー

main_color
required
string

メインカラー

sub_color
required
string

サブカラー

font_id
required
integer

フォントマスタID

font_size_type
required
integer

文字サイズタイプ 1:大 2:中 1:小

rounded_corners_flag
required
boolean

要素の形状(角丸フラグ)

Array of objects
required
object

一覧表示項目データ

list_pagination_json
object

一覧ページネーション項目設定

Responses

Request samples

Content type
application/json
{
  • "layout_name": "社外公開用レイアウト",
  • "background_color": "#ffffff",
  • "font_color": "#000000",
  • "main_color": "#e53935",
  • "sub_color": "#ffebee",
  • "font_id": 1,
  • "font_size_type": 2,
  • "rounded_corners_flag": false,
  • "layout_details": [
    ],
  • "list_item": {
    },
  • "list_pagination_json": { }
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社外レイアウト詳細取得

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

  1. 社外公開レイアウトマスタID(@path)に一致する社外公開レイアウトデータを取得
  2. 社外公開レイアウトマスタID(@path)に一致する社外公開レイアウト詳細データを、
    ブロックJSONの表示順(block_json->display_order)の昇順で取得
  3. レスポンスを生成して返却
path Parameters
id
required
integer

社外公開レイアウトマスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社外レイアウト更新

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]
  • バリデーションチェック [422]

  • 社外公開レイアウトマスタ:更新
  • 社外公開レイアウト詳細マスタ:
    • 社外公開レイアウトマスタIDに一致する社内共有レイアウト詳細マスタデータを全件取得
      • 社外公開レイアウト詳細マスタID(@request)がDBに存在する場合は更新(UPDATE)
      • 社外公開レイアウト詳細マスタID(@request)がDBに存在しない場合は新規作成(INSERT)
      • 社外公開レイアウト詳細マスタIDがDBに存在するが、リクエストに存在しない→該当IDのレコードを削除(DELETE)
        画像を含むブロックを削除するとき、レイアウトIDに紐づく事例の画像を Amazon S3 から削除(※1参照)して、組織ストレージファイルサイズを更新する
  • 社外公開レイアウト詳細マスタIDに紐づく、社外公開事例詳細のブロック表示順を更新する
  • 更新する社外公開レイアウトを使用している事例で、タイトルブロックにあるアイキャッチ画像パスを更新する
  • 更新するレイアウトに最新事例ブロックが含まれている場合は、レイアウトIDに紐づく事例詳細データに、最新事例ブロックを追加する

※社外レイアウトの layout_details 内のデータについては、別資料にまとめています

※1

Amazon s3 の 各ディレクトリ 画像の種類
uploads オリジナル画像
resize リサイズ画像
webp Webp画像
tmb_resize リサイズサムネイル画像
tmb_webp Webpサムネイル画像
path Parameters
id
required
integer

社外公開レイアウトマスタID

Request Body schema: application/json
layout_name
required
string
background_color
required
string

背景カラー

font_color
required
string

文字カラー

main_color
required
string

メインカラー

sub_color
required
string

サブカラー

font_id
required
integer

フォントマスタID

font_size_type
required
integer

文字サイズタイプ 1:大 2:中 1:小

rounded_corners_flag
required
boolean

要素の形状(角丸フラグ)

Array of objects
object
list_pagination_json
object

一覧ページネーション項目設定

Responses

Request samples

Content type
application/json
{
  • "layout_name": "社外公開用レイアウト",
  • "background_color": "#ffffff",
  • "font_color": "#000000",
  • "main_color": "#e53935",
  • "sub_color": "#ffebee",
  • "font_id": 1,
  • "font_size_type": 2,
  • "rounded_corners_flag": false,
  • "layout_details": [
    ],
  • "list_item": {
    },
  • "list_pagination_json": { }
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社外レイアウト削除

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]
  • 事例チェック(事例登録済みの場合は削除不可) [412]

  • 社外公開レイアウトマスタIDに紐づく社外公開事例がある場合は、412エラーを返す
  • 社外公開レイアウトマスタIDを基に、以下のデータを削除する
    • 社外公開レイアウトマスタ
    • 社外公開レイアウト詳細マスタ
    • 社外公開サイトマスタ
path Parameters
id
required
integer

社外公開レイアウトマスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(事例)

事例一覧取得

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]

事例を全件取得し、IDの降順で返却する
フロント側で検索の絞り込みを行うため、絞り込みに必要な検索用データも併せて返却する

  • 顧客情報(顧客名・顧客公開情報)
  • 社内・社外事例情報
一覧表示
display_flag draft_flag temporarily_saved_flag
表示中 true false false
非表示 false false false
表示中
未完了の下書き
true true true
非表示
未完了の下書き
false true true
下書き true true false
下書き false true false

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": [
    ]
}

事例一括更新

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]
  • バリデーションチェック [422]

パラメータの purpose の値に応じて、以下の値を更新する

purposeが1の場合

  • 社内共有事例マスタ internal_sharing_cases
    • 事例表示フラグ display_flag

※パラメータの「id」に含まれるデータが、社外事例のみで使用されている事例のIDの場合は更新処理を行わない。

purposeが2の場合

  • 社外公開事例マスタ external_disclosure_cases
    • 事例表示フラグ display_flag
      ※事例公開フラグが「公開不可(3)」「確認中(4)」の場合は、 false に更新する
    • 事例公開フラグ publish_flag

※パラメータの「id」に含まれるデータが、社内事例のみで使用されている事例のIDの場合は更新処理を行わない。

Request Body schema: application/json
purpose
required
integer

社内共有:1,社外公開:2

id
required
Array of integers

事例ID

display_flag
boolean Nullable

事例表示フラグ

publish_flag
boolean Nullable

事例公開フラグ(社外公開事例のみ)

Responses

Request samples

Content type
application/json
Example
{
  • "purpose": 1,
  • "id": [
    ],
  • "display_flag": true
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(社内共有事例)

社内共有事例登録

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]
  • 編集競合チェック [409]
  • ストレージ容量チェック [412]
  • アップロード画像の合計容量チェック [413]
  • バリデーションチェック(保存時のみ) [422]

  • 社内共有事例の保存データをチェックする
    • 既に、社内共有事例マスタに事例マスタIDに紐づくデータが登録済みの場合、409 (conflict) エラーを返却する
    • パラメータの社内共有レイアウト詳細の数と、社内共有レイアウト詳細マスタのデータの数が一致しない場合、404エラーを返却する
    • アップロード画像の合計容量が、一度にアップロード可能な容量を超えている場合は、413エラーを返却する
  • case_idが存在する場合は社内共有事例マスタ、社内共有事例詳細マスタへのインサートのみ
  • case_idが存在しない場合は事例マスタにインサート後、社内共有事例マスタ、社内共有事例詳細マスタへのインサートを行う
  • draft_flagがtrueの場合はバリデーションチェックをせず、下書き保存関連の処理を行う
  • 社内共有事例詳細マスタの実データJSON(data_json)が初めてレコードに登録される際に合わせて、社内共有事例マスタの実データ作成日時(data_created_at)もレコードに登録する

※社内共有事例の case_details 内のデータについては、別資料にまとめています

検索用文字列について

  • 社内共有サイトの検索用に、検索用文字列に以下の項目を含める
  1. 社内共有事例ID
  2. 事例タイトル
  3. 顧客名
  4. 概要ブロック
    ・1行テキスト
    ・リンクテキスト
  5. 文章ブロック
    ・小見出し(自由、固有どちらも)
    ・本文
  6. 画像ブロック
    ・説明文
  7. 担当者ブロック
    ・コメント
  • 検索用文字列に含める項目の入力値を結合して、社内共有事例マスタのsearch_textに保存します。
  • 入力値に含まれる半角スペース、全角スペース、改行はを取り除いて保存しています。

画像アップロードについて

  • Amazon s3 のオリジナル画像保存用ディレクトリ配下に画像(オリジナルファイル)を追加する
    {バケット名}{組織のorganization_storage_path}/internal_sharing_case/ .....
    ※1:画像がアップロードされたとき、リサイズ・webp形式・サムネイル用画像(リサイズ・webp)に変換する。
    Amazon s3 ディレクトリ部分(オリジナル画像の場合は uploads )を置換して保存する(下表参照)
Amazon s3 の 各ディレクトリ 画像の種類
uploads オリジナル画像
resize リサイズ画像
webp Webp画像
tmb_resize リサイズサムネイル画像
tmb_webp Webpサムネイル画像
Request Body schema: application/json
case_id
integer Nullable

事例ID

customer_id
integer
case_management_name
string Nullable

事例管理名

draft_flag
boolean Nullable

下書きフラグ

internal_sharing_layout_id
integer

社内共有レイアウトマスタID

validate
boolean

バリデーションフラグ

Array of objects Nullable

社内共有事例詳細情報

Responses

Request samples

Content type
application/json
Example
{
  • "case_id": null,
  • "customer_id": 1,
  • "case_management_name": "カスタマーサービス製品導入",
  • "draft_flag": false,
  • "validate": true,
  • "internal_sharing_layout_id": 2,
  • "internal_sharing_case_details": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社内共有事例詳細取得

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

draft_flag を true で受け取った場合、下書きを取得する
※ 受け取らない場合は、 false と同じ扱い

draft_flagがtrueの場合

  • 事例マスタ、社内共有事例マスタ、社内共有事例詳細マスタから下書きに関するデータを取得して返却する

draft_flagがtrue以外場合

  • 事例マスタ、社内共有事例マスタ、社内共有事例詳細マスタから下書きではないデータを取得して返却する

data_jsonに含まれるデータでファイル情報を含むオブジェクトには、組織ストレージにあるファイルパス以外にも、画像変換した各ファイルパスも含まれます。

  • リサイズ画像のパス:resize_path
  • リサイズサムネイル画像のパス:tmb_resize_path
  • webpのパス:webp_path
  • サムネイルwebpのパス:tmb_webp_path
path Parameters
id
required
integer

社内共有事例マスタID

query Parameters
draft_flag
integer

0(false) or 1(true)

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社内共有事例更新

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]
  • 編集競合チェック [409]
  • ストレージ容量チェック [412]
  • アップロード画像の合計容量チェック [413]
  • バリデーションチェック(保存時のみ) [422]

  • 社内共有事例の更新データをチェックする
    • 事例編集中に、他のユーザーが同じ事例を更新していた場合は、409 (conflict) エラーを返却する
    • パラメータの社内共有レイアウト詳細の数と、社内共有レイアウト詳細マスタのデータの数が一致しない場合、404エラーを返却する
    • アップロード画像の合計容量が、一度にアップロード可能な容量を超えている場合は、413エラーを返却する

draft_flagがtrue

  • 各マスタやテーブルの下書き項目を更新する
  • request->internal_sharing_case_details->idが存在する場合:社内共有事例詳細マスタの下書きデータJSONをdata_json(@request)で更新
  • request->internal_sharing_case_details->idがnullまたは存在しない場合:社内共有事例詳細マスタにデータを追加、実データJSON=null、下書きデータJSON=data_json(@request)
  • その他DBには存在するがrequestには含まれていなかったデータ:社内共有事例詳細マスタの下書きデータJSONをnullで更新

draft_flagがtrue以外

  • 各マスタやテーブルの下書き項目をnullで更新、その他データをリクエストの値で更新
  • request->internal_sharing_case_details->idが存在する場合:社内共有事例詳細マスタの実データJSONをdata_json(@request)で更新
  • request->internal_sharing_case_details->idがnullまたは存在しない場合:社内共有事例詳細マスタにデータを追加、実データJSON=data_json(@request)、下書きデータJSON=null
  • その他DBには存在するがrequestには含まれていなかったデータ:社内共有事例詳細マスタの該当レコードを削除、関連するファイル等も削除

※社内共有事例の case_details 内のデータについては、別資料にまとめています

検索用文字列について

  • 社内共有サイトの検索用に、検索用文字列に以下の項目を含める
  1. 社内共有事例ID
  2. 事例タイトル
  3. 顧客名
  4. 概要ブロック
    ・1行テキスト
    ・リンクテキスト
  5. 文章ブロック
    ・小見出し(自由、固有どちらも)
    ・本文
  6. 画像ブロック
    ・説明文
  7. 担当者ブロック
    ・コメント
  • 検索用文字列に含める項目の入力値を結合して、社内共有事例マスタのsearch_textに保存します。
  • 入力値に含まれる半角スペース、全角スペース、改行はを取り除いて保存しています。

画像アップロードについて

  • Amazon s3 のオリジナル画像保存用ディレクトリ配下に画像(オリジナルファイル)を追加する
    {バケット名}{組織のorganization_storage_path}/internal_sharing_case/ .....
    ※1:画像がアップロードされたとき、リサイズ・webp形式・サムネイル用画像(リサイズ・webp)に変換する。
    Amazon s3 ディレクトリ部分(オリジナル画像の場合は uploads )を置換して保存する(下表参照)
Amazon s3 の 各ディレクトリ 画像の種類
uploads オリジナル画像
resize リサイズ画像
webp Webp画像
tmb_resize リサイズサムネイル画像
tmb_webp Webpサムネイル画像
path Parameters
id
required
integer

社内共有事例マスタID

Request Body schema: application/json
case_management_name
string Nullable

事例管理名

draft_flag
boolean Nullable

下書きフラグ

validate
boolean

バリデーションフラグ

drafted_at
string Nullable

下書きデータ最終更新日時

data_updated_at
string Nullable

実データ最終更新日時

Array of objects Nullable

社内共有事例詳細情報

Responses

Request samples

Content type
application/json
Example
{
  • "case_management_name": "カスタマーサクセス製品導入",
  • "draft_flag": true,
  • "validate": true,
  • "drafted_at": "2021-12-13 18:50:14",
  • "data_updated_at": "2021-12-14 18:50:14",
  • "internal_sharing_case_details": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社内共有事例削除

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

同事例IDの社外公開事例が存在する場合

  • 社内共有事例マスタと社内共有事例詳細マスタから社内共有事例マスタID(@path)に一致するデータを削除
  • 事例に含まれている画像データを、Amazon S3から削除
  • 組織ストレージファイルサイズを更新

同事例IDの社外公開事例が存在しない場合

  • 社内共有事例マスタと社内共有事例詳細マスタから社内共有事例マスタID(@path)に一致するデータを削除
  • 事例マスタから事例マスタIDに一致するデータを削除
  • 事例に含まれている画像データを、Amazon S3から削除
  • 組織ストレージファイルサイズを更新
path Parameters
id
required
integer

社内共有事例マスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

社内共有事例公開設定情報取得

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

事例更新後の公開設定画面を表示する際に実行するAPI

  • 社内共有事例マスタIDを基に社内共有事例の公開設定情報を取得する
    • tags:P1範囲外のため空配列
path Parameters
id
required
integer

社内共有事例マスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社内共有事例公開設定

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック(社内共有事例マスタID) [404]

事例登録・更新後の公開設定画面の「完了」押下時に実行するAPI

  • display_flagがtrueならinternal_sharing_casesのdisplay_flagをtrue、それ以外はfalseで更新

※attach_tags、detach_tagsは、P1範囲外のため空配列

path Parameters
id
required
integer

社内共有事例マスタID

Request Body schema: application/json
display_flag
boolean Nullable

事例表示フラグ

attach_tags
Array of any

事例に新たに付けるタグ

detach_tags
Array of any

事例から外すタグ

Responses

Request samples

Content type
application/json
{
  • "display_flag": true,
  • "attach_tags": [ ],
  • "detach_tags": [ ]
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(社外公開事例)

社外公開事例登録

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]
  • ストレージ容量チェック [412]
  • 顧客の公開ステータスチェック [412]
  • バリデーションチェック(保存時のみ) [422]

  • 社外公開事例の保存データをチェックする
    • 既に、社外公開事例マスタに事例マスタIDに紐づくデータが登録済みの場合、409 (conflict) エラーを返却する
    • パラメータの社外公開レイアウト詳細の数と、社外公開レイアウト詳細マスタのデータの数が一致しない場合、404エラーを返却する
    • 顧客の公開ステータスが「公開不可(3)」「確認中(4)」の場合、412エラーを返す
    • アップロード画像の合計容量が、一度にアップロード可能な容量を超えている場合は、413エラーを返却する
  • case_idが存在する場合は社外公開事例マスタ、社外公開事例詳細マスタへのインサートのみ
  • case_idが存在しない場合は事例マスタにインサート後、社外公開事例マスタ、社外公開事例詳細マスタへのインサートを行う
  • draft_flagがtrueの場合はバリデーションチェックをせず、下書き保存関連の処理を行う
  • 社外公開事例詳細マスタの実データJSON(data_json)が初めてレコードに登録される際に合わせて、社外公開事例マスタの実データ作成日時(data_created_at)もレコードに登録する

※社外公開事例の case_details 内のデータについては、別資料にまとめています

画像アップロードについて

  • Amazon s3 のオリジナル画像保存用ディレクトリ配下に画像(オリジナルファイル)を追加する
    {バケット名}{組織のorganization_storage_path}/external_disclosure_case/ .....
    ※1:画像がアップロードされたとき、リサイズ・webp形式・サムネイル用画像(リサイズ・webp)に変換する。
    Amazon s3 ディレクトリ部分(オリジナル画像の場合は uploads )を置換して保存する(下表参照)
Amazon s3 の 各ディレクトリ 画像の種類
uploads オリジナル画像
resize リサイズ画像
webp Webp画像
tmb_resize リサイズサムネイル画像
tmb_webp Webpサムネイル画像
Request Body schema: application/json
case_id
integer Nullable

事例ID

customer_id
integer

顧客ID

case_management_name
string Nullable

事例管理名

draft_flag
boolean Nullable

下書きフラグ

validate
boolean

バリデーションフラグ

external_disclosure_layout_id
integer

社外公開レイアウトマスタID

Array of objects Nullable

社外公開事例詳細情報

Responses

Request samples

Content type
application/json
Example
{
  • "case_id": null,
  • "customer_id": 1,
  • "case_management_name": "カスタマーサービス製品導入",
  • "draft_flag": false,
  • "validate": true,
  • "external_disclosure_layout_id": 2,
  • "external_disclosure_case_details": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社外公開事例詳細取得

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

draft_flag を true で受け取った場合、下書きを取得する
※ 受け取らない場合は、 false と同じ扱い

draft_flagがtrueの場合

  • 事例マスタ、社外公開事例マスタ、社外公開事例詳細マスタから下書きに関するデータを取得して返却する

draft_flagがtrue以外場合

  • 事例マスタ、社外公開事例マスタ、社外公開事例詳細マスタから下書きではないデータを取得して返却する

data_jsonに含まれるデータでファイル情報を含むオブジェクトには、組織ストレージにあるファイルパス以外にも、画像変換した各ファイルパスも含まれます。

  • リサイズ画像のパス:resize_path
  • リサイズサムネイル画像のパス:tmb_resize_path
  • webpのパス:webp_path
  • サムネイルwebpのパス:tmb_webp_path
path Parameters
id
required
integer

社外公開事例マスタID

query Parameters
draft_flag
string

0(false) or 1(true)

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社外公開事例更新

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]
  • 編集競合チェック [409]
  • ストレージ容量チェック [412]
  • 顧客の公開ステータスチェック [412]
  • アップロード画像の合計容量チェック [413]
  • バリデーションチェック(保存時のみ) [422]

  • 社外公開事例の更新データをチェックする
    • 事例編集中に、他のユーザーが同じ事例を更新していた場合は、409 (conflict) エラーを返却する
    • パラメータの社外公開レイアウト詳細の数と、社外公開レイアウト詳細マスタのデータの数が一致しない場合、404エラーを返却する
    • 顧客の公開ステータスが「公開不可(3)」「確認中(4)」の場合、412エラーを返す
    • アップロード画像の合計容量が、一度にアップロード可能な容量を超えている場合は、413エラーを返却する

draft_flagがtrue

  • 各マスタやテーブルの下書き項目を更新する
  • request->external_disclosure_case_details->idが存在する場合:社外公開事例詳細マスタの下書きデータJSONをdata_json(@request)で更新
  • request->external_disclosure_case_details->idがnullまたは存在しない場合:社外公開事例詳細マスタにデータを追加、実データJSON=null、下書きデータJSON=data_json(@request)
  • その他DBには存在するがrequestには含まれていなかったデータ:社外公開事例詳細マスタの下書きデータJSONをnullで更新

draft_flagがtrue以外

  • 各マスタやテーブルの下書き項目をnullで更新、その他データをリクエストの値で更新
  • request->external_disclosure_case_details->idが存在する場合:社外公開事例詳細マスタの実データJSONをdata_json(@request)で更新
  • request->external_disclosure_case_details->idがnullまたは存在しない場合:社外公開事例詳細マスタにデータを追加、実データJSON=data_json(@request)、下書きデータJSON=null
  • その他DBには存在するがrequestには含まれていなかったデータ:社外公開事例詳細マスタの該当レコードを削除、関連するファイル等も削除

※社外公開事例の case_details 内のデータについては、別資料にまとめています

画像アップロードについて

  • Amazon s3 のオリジナル画像保存用ディレクトリ配下に画像(オリジナルファイル)を追加する
    {バケット名}{組織のorganization_storage_path}/external_disclosure_case/ .....
    ※1:画像がアップロードされたとき、リサイズ・webp形式・サムネイル用画像(リサイズ・webp)に変換する。
    Amazon s3 ディレクトリ部分(オリジナル画像の場合は uploads )を置換して保存する(下表参照)
Amazon s3 の 各ディレクトリ 画像の種類
uploads オリジナル画像
resize リサイズ画像
webp Webp画像
tmb_resize リサイズサムネイル画像
tmb_webp Webpサムネイル画像
path Parameters
id
required
integer

社外公開事例マスタID

Request Body schema: application/json
case_management_name
string Nullable

事例管理名

draft_flag
boolean Nullable

下書きフラグ

validate
boolean

バリデーションフラグ

drafted_at
string Nullable

下書きデータ最終更新日時

data_updated_at
string Nullable

実データ最終更新日時

Array of objects Nullable

Responses

Request samples

Content type
application/json
Example
{
  • "case_management_name": "カスタマーサクセス製品導入",
  • "draft_flag": true,
  • "validate": true,
  • "drafted_at": "2021-12-12 18:54:21",
  • "data_updated_at": "2021-12-13 18:54:21",
  • "external_disclosure_case_details": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社外公開事例削除

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

同事例IDの社内共有事例が存在する場合

  • 社外公開事例マスタと社外公開事例詳細マスタから社外公開事例マスタID(@path)に一致するデータを削除
  • 事例に含まれている画像データを、Amazon S3から削除
  • 組織ストレージファイルサイズを更新

同事例IDの社内共有事例が存在しない場合

  • 社外公開事例マスタと社外公開事例詳細マスタから社外公開事例マスタID(@path)に一致するデータを削除
  • 事例マスタから事例マスタIDに一致するデータを削除
  • 事例に含まれている画像データを、Amazon S3から削除
  • 組織ストレージファイルサイズを更新
path Parameters
id
required
integer

社外公開事例マスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

社外公開事例公開設定情報取得

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

事例更新後の公開設定画面を表示する際に実行するAPI

  • 社外公開事例マスタIDを基に社外公開事例情報を取得する
path Parameters
id
required
integer

社外公開事例マスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社外公開事例公開設定

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

  • display_flagが表示(true)ならexternal_disclosure_casesのdisplay_flagをtrue、それ以外はfalseで更新
  • publish_flagが公開可(true)ならexternal_disclosure_casesのpublish_flagをtrue、それ以外はfalseで更新
    ※display_flag が非表示(false)の場合は、publish_flag を 公開不可(false) にする
path Parameters
id
required
integer

社外公開事例マスタID

Request Body schema: application/json
display_flag
boolean Nullable

事例表示フラグ

publish_flag
boolean Nullable

事例公開フラグ

Responses

Request samples

Content type
application/json
{
  • "display_flag": true,
  • "publish_flag": true
}

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(社外公開設定)

公開サイト一覧

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]

社外公開設定画面の公開サイト一覧を表示する際に使用するAPI
社外公開サイトの一覧を、IDの降順に返却する

  • number_of_cases:社外公開レイアウトマスタIDに一致する社外公開事例の数
  • number_of_publish_cases:レイアウトに一致する事例の中でpublish_flagがtrueの事例数
  • number_of_display_cases:レイアウトに一致する事例の中でdisplay_flagがtrueの事例数

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": [
    ]
}

公開サイト登録

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • バリデーションチェック [422]

社外公開サイトを登録するAPI

  • 社外公開サイトマスタにデータ登録
  • matomo にサイト登録
  • matomo サイト ID を DB に追加
query Parameters
external_disclosure_site_name
required
string
Example: external_disclosure_site_name=コーポレートサイト事例

社外公開サイト名

installation_destination_url
required
string
Example: installation_destination_url=https://XXXXX.XXXX/case/

設置先URL

external_disclosure_layout_id
required
integer

社外公開レイアウトマスタID

ua_tracking_id
string
Example: ua_tracking_id=UA-XXXXXX-XX

UAトラッキングID

ga4_measurement_id
string
Example: ga4_measurement_id=G-XXXXXXXXXX

GA4測定ID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

公開サイト詳細

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

社外公開サイト更新画面を表示する際に詳細情報を取得する為使用するAPI

  • 社外公開サイトIDに紐づく、社外公開サイト情報を返却する
path Parameters
id
required
integer

社外公開サイトマスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

公開サイト更新

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]
  • バリデーションチェック [422]

社外公開サイト情報を更新するAPI

  • IDに紐づく社外公開サイトマスタのデータを更新する
  • matomo に登録しているサイトの情報を更新する
path Parameters
id
required
integer

社外公開サイトマスタID

query Parameters
external_disclosure_site_name
required
string
Example: external_disclosure_site_name=コーポレートサイト事例

社外公開サイト名

installation_destination_url
required
string
Example: installation_destination_url=https://XXXXX.XXXX/case/

設置先URL

external_disclosure_layout_id
required
integer

社外公開レイアウトマスタID

ua_tracking_id
string
Example: ua_tracking_id=UA-XXXXXX-XX

UAトラッキングID

ga4_measurement_id
string
Example: ga4_measurement_id=G-XXXXXXXXXX

GA4測定ID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

公開サイト削除

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

  • 社外公開サイトIDに紐づく matomo 連携IDを取得
  • 社外公開サイトマスタから、社外公開サイトIDに紐づくレコードを削除
  • 削除済サイト matmo ID 管理テーブルに、matomo 連携IDを保存
path Parameters
id
required
integer

社外公開サイトマスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

設置スクリプト発行API

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • データ存在チェック [404]

  • 社外公開サイトIDに紐づく、社外公開サイトデータを取得
  • 取得したデータからレスポンスを生成して、返却する

※返却されたサイト識別子等を使用して、フロント側でscriptを生成する

path Parameters
id
required
integer

社外公開サイトマスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

利用者向け(社内共有設定)

社内サイト一覧

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者) [401]
  • プランチェック [412]

社内共有設定の社内サイト一覧を返却するAPI

  • 組織IDに紐づく社内共有サイトデータを取得する
  • 社内共有サイトID の降順に並び替えて返却する

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": [
    ]
}

社内サイト登録

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者) [401]
  • プランチェック [412]
  • バリデーションチェック [422]

社内共有サイトを登録するAPI

  • 社内共有サイトマスタにデータ登録
  • matomo にサイト登録
  • matomo サイト ID を DB に追加

作成が完了したら生成したURLをレスポンスで返却する(https://private.caseful.{ jp/net }/{site_identifier}/)

query Parameters
internal_sharing_site_name
required
string

社内共有サイト名

internal_sharing_layout_id
required
integer

社内共有レイアウトID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社内サイト詳細

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者) [401]
  • データ存在チェック [404]
  • プランチェック [412]

社内サイト更新に使用する社内サイト情報を返却するAPI

  • 社内共有サイトIDに紐づく社内共有サイトデータを取得する
path Parameters
id
required
integer

社内共有サイトマスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社内サイト更新

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者) [401]
  • データ存在チェック [404]
  • プランチェック [412]
  • バリデーションチェック [422]

社内共有サイト情報を更新するAPI

  • IDに紐づく社内共有サイトマスタのデータを更新する
  • matomo に登録しているサイトの情報を更新する
path Parameters
id
required
integer

社内共有サイトマスタID

query Parameters
internal_sharing_site_name
required
string

社内共有サイト名

internal_sharing_layout_id
required
integer

社内共有レイアウトID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

社内サイト削除

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者) [401]
  • データ存在チェック [404]
  • プランチェック [412]

社内共有サイトを削除するAPI

  • 社内共有サイトIDに紐づくMatomo連携IDを取得
  • id(@path)に一致する社内共有サイトのデータを削除する
  • 削除済サイトmatomoID管理テーブルにMatomo連携IDを保存
path Parameters
id
required
integer

社内共有サイトマスタID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(社内共有サイト)

社内共有サイト情報取得

  • データ存在チェック [404]

社内共有サイト情報を返却する

  • サイト情報(ロゴ画像・サイト名)
    • internal_sharing_site_logo_file_path:organizations.internal_sharing_site_logo_file_path
    • resize、webpの画像については、オリジナル画像パスのuploads部分を置き換える必要がある
      各種置き換えについては、 社内共有サイトロゴ設定API(利用者向け)の※1の表を参照
  • 許可されたIPアドレスフラグ(P1範囲外のため常にtrue)
  • 組織アカウント状況(1:有効 2:停止(自動) 3:停止(手動) 4:無効)
path Parameters
identifier
required
string

サイト識別子

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

ログイン

  • ログイン認証・組織チェック [401]
  • データ存在チェック [404]
  • バリデーションチェック [422]

Auth0を使用したログインを行いユーザーデータを返却するAPI

  • サイト識別子に一致するサイトデータを取得
  • ユーザートークン・API アクセストークン取得
  • ユーザーデータ取得を行いレスポンスデータを返却する
  • Auth0で認証エラーが発生した場合は、422エラーを返却する
    • too_many_attempts (アカウントがブロックされているとき)の場合
      • password:『アカウントがブロックされたため変更できません。\nご登録のメールアドレス宛に送信されたメールをご確認ください。』
    • 上記以外の場合
      • password:『認証エラーが発生しました。』
path Parameters
identifier
required
string

サイト識別子

query Parameters
email
required
string

メールアドレス

password
required
string

パスワード

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

ログイン情報取得API

  • ログイン認証・組織チェック [401]
  • データ存在チェック [404]

既にログイン済みの場合、ログイン情報を取得して返却するAPI

path Parameters
identifier
required
string

サイト識別子

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

パスワード再設定

  • バリデーションチェック [422]

パスワードの再設定行うAPI

  • ID に合致するユーザーを取得
  • Auth0 Usersデータを更新する
  • パスワードの再設定を行う
path Parameters
id
required
string

ハッシュ化されたユーザーマスタID

query Parameters
password
required
string

パスワード

password_confirmation
required
string

パスワード確認

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

パスワード再設定メール送信

  • 存在チェック [404]
  • バリデーションチェック [422]

  1. パラメータのメールアドレスに紐づくユーザーが、仮登録中、または招待中のユーザーかチェックする
    • 仮登録中、または招待中のユーザーの場合は、422エラーを返却する
      email:『ご入力いただいたメールアドレスはパスワード設定が行われていません。』
  2. メール有効期限テーブルにデータを追加する
  3. パラメータで渡されたメールアドレスのユーザー宛に、『パスワードリセット通知メール』を送信する
path Parameters
identifier
required
string

サイト識別子

query Parameters
email
required
string
Example: email=user@domain.com

メールアドレス

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

メール有効期限チェック

  • データ存在チェック [404]

メールハッシュ値を基にメールの有効期限をチェックするAPI

  • 有効期限が切れていない場合は200
  • 有効期限が切れている(この際レコードの削除と関連データの削除が存在する場合実行)、レコードが見つからない場合は404
query Parameters
mail_hash
required
string

メールについているハッシュ値

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

社内共有事例一覧取得

  • ログイン認証 [401]
  • 権限チェック(運営者以外) [401]
  • 存在チェック [404]
  • サイトの組織とログインユーザーの組織の一致チェック [404]

社内共有サイト一覧情報を取得するAPI

社内共有サイト事例一覧画面

  1. 社内共有サイト識別子に一致する社内共有レイアウトID・フォント情報を取得
  2. 社内共有レイアウトIDに一致する社内共有事例を全件取得
  • No.1234(case_id) : internal_sharing_cases.case_id
  • 作成日(data_created_at) : internal_sharing_cases.data_created_at
  • 更新日(data_updated_at) : internal_sharing_cases.data_updated_at
  • BtoB不動産事業....(case_title) : 事例タイトル
    • 社内共有レイアウト詳細マスタから、社内サイトの社内レイアウトに一致するレイアウト詳細かつ、block_typeが101(タイトルブロック)のレイアウト詳細IDを取得
    • 社内共有事例詳細マスタから取得したレイアウト詳細IDに一致するレコードのdata_jsonを取得して、その中のタイトルを取得
  • DEF株式会社...(customer_name) : customers.customer_name(internal_sharing_cases.customer_id = customers.id)
  • ♡1,000(likes) : internal_sharing_cases.likes(カンマはフロント側で追加する)
  • 社外あり(exists_external_disclosure_case) : true or false(社内共有事例と同じ事例IDを持つ社外事例が存在する場合true)
  • 表示中(display_flag) : external_disclosure_cases.display_flag(社内共有事例と同じ事例IDが社外事例マスタに存在する場合、その事例のdisplay_flagを取得する)
  • イメージ(case_image_path ~ case_image_tmb_webp_path) : 5種類のパスを返却する
    • resize、webp、tmpの画像については、オリジナル画像パスのuploads部分を置き換える必要がある
      各種置き換えについては、社内共有事例登録APIの※1の表を参照
  • 選択された選択肢(option_list) : data_jsonから取得する
  • タグ(tags) : (P1範囲外)

検索キーワード

  • キーワードはカンマ区切りでクエリパラメータに含めます。 http://192.168.33.128/resource/api/private/9ac2c010-bb0b-48cb-a8ba-2df400430e54/internal-sharing-cases?keywords=AA,ABC
  • 受け取ったクエリパラメータをカンマ毎に分解して、別々のキーワードにし、検索用配列に含めます。
  • 検索用配列に含まれるキーワードの数だけSQLのLIKE句を追加し、それらでAnd検索を行います。
  • And検索なので複数キーワードがあれば、いずれのキーワードも検索用文字列に存在する事例のみがレスポンスに含まれます。
  • キーワードを指定せず全件取得したい場合は、「?keywords=」が無い状態でリクエストします。
  • カンマはクエリパラメータの区切り文字ですが、カンマ(,)をキーワードにした場合、検索用文字列に含まれる事例があればレスポンスに含まれます。
path Parameters
identifier
required
string

サイト識別子

query Parameters
keywords
string
Example: keywords=?keywords=AA,A,B,C,

検索キーワード

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": [
    ]
}

社内共有事例詳細取得

  • ログイン認証 [401]
  • 権限チェック(運営者以外) [401]
  • サイトの存在チェック [404]
  • サイトの組織とログインユーザーの組織の一致チェック [404]
  • サイトの組織と事例の組織の一致チェック [404]

id(社内共有事例ID)を基に必要なデータを取得する

  • customer -> logo_file_path:customers.logo_file_path
  • resize、webpの画像については、オリジナル画像パスのuploads部分を置き換える必要がある
    各種置き換えについては、顧客追加APIの※1の表を参照

※internal_sharing_case_details -> data_json の中のデータについては、別資料にまとめています

path Parameters
id
required
string

社内共有事例ID

identifier
required
string

サイト識別子

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社内レイアウト詳細取得

  • ログイン認証 [401]
  • 権限チェック(所有者・管理者のみ) [401]
  • サイト存在チェック [404]

  1. サイト識別子に一致する社内共有レイアウト情報を取得

※internal_sharing_layout_details -> data_json の中のデータについては、別資料にまとめています

path Parameters
identifier
required
string

サイト識別子

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

絞り込み検索項目

  • ログイン認証 [401]
  • 権限チェック(運営者以外) [401]
  • 存在チェック [404]

『社内共有サイト』の検索項目の動的な部分(上部レイアウト選択項目)に表示するデータを返却するAPI

  1. サイト識別子を基に社内共有レイアウト及び社内共有レイアウト詳細を特定、詳細の内、概要ブロックのデータのみ取得する
  2. display_formatの input_value が、3.選択(単一)、4.選択(複数) のデータを取得
  3. 表示項目名称(例:カテゴリ、業界 etc)と選択肢名称(例:カテゴリ1、カテゴリ2 etc)を返却する

レスポンスに含めるデータとして、概要ブロックから項目を抽出する。

  • category_id:
    display_items -> category_id

  • category_name:
    display_items -> display_item_name -> input_value

  • option_list:

    • option_id:
      display_items -> option_list -> option_id
    • order:
      display_items -> option_list -> order
    • option_name:
      display_items -> option_list -> input_value
path Parameters
identifier
required
string

サイト識別子

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": [
    ]
}

ユーザーいいね取得

  • ログイン認証 [401]
  • 権限チェック(運営者以外) [401]

ユーザーがいいねしているかを返却するAPI
※パラメータは簡単にするためにid表記ですが、ユーザーいいねIDではなく、社内共有事例IDです。

  1. ログイン情報からユーザーIDを取得
  2. 社内共有事例ID(@path)とユーザーIDを基にユーザーいいねテーブルにデータが存在するかチェック
  3. 存在する場合 exists_user_like = true、存在しない場合 false を返却
path Parameters
id
required
integer

社内共有事例ID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

ユーザーいいね設定

  • ログイン認証 [401]
  • 権限チェック(運営者以外) [401]

ユーザーいいねを設定するAPI
※パラメータは簡単にするためにid表記ですが、ユーザーいいねIDではなく、社内共有事例IDです。

  • 社内共有事例IDとユーザーIDに一致するレコードが既にテーブルに存在する場合何もせず200を返却

  • 社内共有事例ID(@path)とユーザーIDをユーザーいいねテーブルに追加

  • 社内共有事例ID(@path)に紐づく社内共有事例マスタのlikesを+1

path Parameters
id
required
integer

社内共有事例ID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

ユーザーいいね解除

  • ログイン認証 [401]
  • 権限チェック(運営者以外) [401]

ユーザーいいねを解除するAPI
※パラメータは簡単にするためにid表記ですが、ユーザーいいねIDではなく、社内共有事例IDです。

  • 社内共有事例IDとユーザーIDに一致するレコードが既にテーブルに存在しない場合何もせず200を返却

  • 社内共有事例ID(@path)とユーザーIDに一致するレコードをユーザーいいねテーブルから削除

  • 社内共有事例ID(@path)に紐づく社内共有事例マスタのlikesを-1

path Parameters
id
required
integer

社内共有事例ID

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": { }
}

利用者向け(社外公開サイト)

社外公開事例一覧

  • データ存在チェック [404]
  • 設置先URLからのリクエストかチェック [404]
  • 組織アカウント状態が手動停止(3)ではないかチェック [404]
  • サイトに紐づくレイアウトIDと、事例に紐づくレイアウトIDが一致するかチェック [404]

サイトに紐づくレイアウトに紐づく事例を全件取得して返却するAPI
(カラーやフォント、カードの仕様等は社外レイアウト詳細取得APIで取得)

  1. サイト識別子を基に社外サイト情報を取得
  2. 社外サイトレイアウト情報に一致する事例を全件取得

レスポンスの「data -> cases -> * ->customer_name」について

  1. 社外公開レイアウトのlist_item_type(一覧表示項目タイプ)を確認
  2. list_item_typeが「1: スモールカード」であればsmall_card_item_settings_jsonを確認。「2: ノーマルカード」であればnormal_card_item_settings_jsonを確認
  3. 「title -> anonymization_customer_name -> input_value」を確認し、trueであれば「customer_anonymous」、falseであれば「customer_name」をレスポンスの「data -> cases -> customer_name」に含める

レスポンスの「data -> cases -> *」に含めるcase_image_pathやoption_listの取得手順について

  1. 社外公開事例に紐づく社外公開事例詳細を取得。
  2. 取得した社外公開事例詳細で、紐づく社内共有レイアウト詳細のブロックタイプが「201:タイトルブロック」のものを抽出
  3. 取得した各タイトルブロックから一覧用データ(case_details -> data_json -> grid_item)を取得
  4. 取得した一覧用データ(grid_item)内のデータパースしてレスポンスデータのdata -> casesに含める
  • case_image_path
    grid_item -> eye_catch_image_pathのデータを含める

  • option_list
    grid_item -> category_list -> option_listのデータを含める

レスポンスの画像パスについて

  • resize、webp、tmbの画像については、オリジナル画像パスのuploads部分を置き換える必要がある
    各種置き換えについては、顧客追加APIの※1の表を参照
path Parameters
identifier
required
string

サイト識別子

query Parameters
embed_url
string

埋め込み先URL

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社外公開事例詳細

  • データ存在チェック [404]
  • 設置先URLからのリクエストかチェック [404]
  • 組織アカウント状態が手動停止(3)ではないかチェック [404]
  • サイトに紐づくレイアウトIDと、事例に紐づくレイアウトIDが一致するかチェック [404]

  1. パラメータの事例IDに紐づく社外公開事例情報を取得
  2. 社外公開事例詳細情報を取得
  3. 最新事例ブロックが存在する場合は、最新事例データを取得する
  4. レスポンスを生成して、返却する
  • site_identifier : 社外公開サイトマスタのサイト識別子
  • show_service_credit : サイトに紐づく組織に紐づく契約プランがライト・スタンダードの場合true

※case-details -> data_json の中のデータについては、別資料にまとめています

レスポンスの「customer_name」について

  1. 社外公開レイアウトのlist_item_type(一覧表示項目タイプ)を確認
  2. list_item_typeが「1: スモールカード」であればsmall_card_item_settings_jsonを確認。「2: ノーマルカード」であればnormal_card_item_settings_jsonを確認
  3. 「title -> anonymization_customer_name -> input_value」を確認し、trueであれば「customer_anonymous」、falseであれば「customer_name」をレスポンスの「customer_name」に含める
path Parameters
site_identifier
required
string

サイト識別子

id
required
string

表示用事例ID

query Parameters
embed_url
string

埋め込み先URL

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": {
    }
}

社外レイアウト詳細取得

  • データ存在チェック [404]
  • 設置先URLからのリクエストかチェック [404]

  • サイト識別子に紐づく、社外公開サイト情報を取得する
  • 取得した社内共有サイト情報から、社外公開レイアウトIDを取得する
  • レイアウトIDに紐づく、社外公開レイアウト情報と社外公開レイアウト詳細情報を取得する
  • レスポンスを生成し、返却する

※layout-details -> data_json の中のデータについては、別資料にまとめています

path Parameters
identifier
required
string

サイト識別子

query Parameters
embed_url
string

埋め込み先URL

Responses

Response samples

Content type
application/json
{
  • "message": "OK",
  • "data": [
    ]
}