Skip to content

Update Member Blacklist

Description

修改會員黑名單。

Resource

PATCH /v1/user/blacklist

Authorization

採用 OAuth 2.0 Bearer Token,詳細使用流程請參考 Auth Login。

Request Body Parameters

Name Type Description
members Member 會員列表

Request Body Parameters - Member

Name Type Description
external_vip_id string 外部會員編號
is_blacklist boolean 是否為黑名單

Request Body Example

{
  "members": [
    {
      "external_vip_id": "VIP00001",
      "is_blacklist": true
    },
    {
      "external_vip_id": "VIP00002",
      "is_blacklist": false
    }
  ]
}

Response Body Parameters

Name Type Description
message string 錯誤訊息
vip_id_list list 修改黑名單失敗的會員清單

Response

Status-Code: 204 No Content

Status-Code: 400

{
  "message": "修改會員黑名單失敗",
  "vip_id_list": [
    "VIP00001"
  ]
}

Update Member Blacklist API Workflow

sequenceDiagram
%%{init: {'securityLevel': 'loose', 'theme': 'base'}}%%
    autonumber
    participant C as Client
    participant OP as OmniPlatform
    participant R as Repository

    C ->> OP: Request [PATCH] /v1/user/blacklist


    OP ->> OP: Call check_params_process(params)
    alt 請求參數缺少必填欄位
        OP -->> C: Return Response(400, f'{column} 不可為空')
    end
    OP ->> OP: update_df = handle_update_data(company_id, params['members'])

    Note over OP: 透過 VipAppService 更新 POS 會員資料
    OP ->> OP: PosMember().batch_update_pos_member_data(update_df)


    OP ->> OP: fail_update_vips: list = []

    Note over OP: 更新 全通路 會員資料
    loop data in pure_update_data
        alt type(data['is_blacklist']) == bool
        OP ->> R: Call update_member_blacklist(company_id, vip_id, is_blacklist)
        end
        OP ->> OP: fail_update_vips.append(vip_id)
    end

    alt fail_update_vips
        OP -->> C: Return(400, {'message': '修改會員黑名單失敗', 'vip_id_list': fail_update_vips})
    end

    OP -->> C: Return Response(204)