---
# System prepended metadata

title: CMS API

---

CMS UI-API


## 3-1 廣告媒體管理-主控台

![](https://hackmd.io/_uploads/HJl8l89HC2.png)


[GET] 顯示 /api/framework/CMS/channel-device 

## 3-2 頻道管理
![](https://hackmd.io/_uploads/B1HWL9B02.png)

[POST] 複製頻道 /api/framework/CMS/channels/{channel_id}/copy
[POST] 新增頻道 /api/framework/CMS/channels
[GET] 頻道列表  /api/framework/CMS/channels
* 操作型態欄位 -> is_touchable, True=觸控, False=非觸控
    * **前端需阻擋"非觸控"的頻道加入觸控行為**
* 顯示尺寸欄位 -> 前端用 width, height 寫死組合出來

[DELETE] 刪除 /api/framework/CMS/channels/{channel_id}
編輯=>跳頁
閒置頻道=>設備數量 =0 的算閒置

## 3-2-2 新增(編輯)頻道管理
![](https://hackmd.io/_uploads/BkeMIqHA2.png)


頻道設定=從上一層帶進來(/api/framework/CMS/channels)
閒置播放清單 => 跳頁
複製頁面 => 跳頁
新增頁面 => 跳頁
[GET] 樹狀圖 /api/framework/CMS/channels/{channel_id}/program_tree

[PATCH] 點擊更換主頁 /api/framework/CMS/channels/{channel_id} -> {home_layout_id: xx}

[GET] 可以選擇的頁面  /api/framework/CMS/channels/{channel_id}/idle_layouts
* 頁面預覽圖  -> 顯示第一個檔案的預覽圖

[PATCH] 儲存編輯 /api/framework/CMS/channels/{channel_id}

樹狀圖格式/顯示 ->
![](https://hackmd.io/_uploads/BJlULqHAn.png)



## 3-2-2 新增(編輯)頻道管理 - 閒置播放清單

![](https://hackmd.io/_uploads/HyeDUqrRn.png)


頻道設定=從上一層帶進來(/api/framework/CMS/channels)
[?] 預覽頻道 (無UI)
複製頁面 => 跳頁
新增頁面 => 跳頁
[GET] 可以選擇的頁面  /api/framework/CMS/channels/{channel_id}/layouts
* 前端要排除掉 idle_layouts

[GET] 閒置頁面 /api/framework/CMS/channels/{channel_id}/idle_layouts
[POST] 閒置頁面 /api/framework/CMS/channels/{channel_id}/idle_layouts
[DELETE] 閒置頁面 /api/framework/CMS/channels/{channel_id}/idle_layouts/{layout_id}
[PATCH] 儲存編輯(頻道設定) /api/framework/CMS/channels/{channel_id}



## 3-2-3 複製頁面

![](https://hackmd.io/_uploads/HypwLcHAh.png)

[GET] 顯示頁面 /api/framework/CMS/channels/{channel_id}/layouts
* 預覽圖-> 第一個檔案的預覽圖

[POST] 確定 /api/framework/CMS/layouts/{layout_id}/copy


## 3-2-4 新增頁面-選擇樣板

![](https://hackmd.io/_uploads/rJKdUqSAn.png)

[GET] 樣板 /api/framework/CMS/layouts
[POST] 確定 /api/framework/CMS/layouts/{layout_id}/copy 寫死 payload 為 {"count": 1}

## 3-2-4-1 頁面設定-區塊播放清單

![](https://hackmd.io/_uploads/HJcFLcSC3.png)

[GET] 顯示 /api/framework/CMS/layouts/{layout_id}
* 左邊區塊
	* 口 勾選我，讓這個區塊靜音->[PATCH] /api/framework/CMS/layouts/{layout_id}/regions/{region_id}  , payload = {"meta_data": {"is_mute": true}}
	* 預覽圖 -> 第一個檔案的預覽圖
* 右邊區塊播放清單
	* 預覽圖 -> 第一個檔案的預覽圖
	* 顯示尺寸 X 不用此欄位
	* 操作型態 X 不用此欄位
	* 播放中區塊 X 不用此欄位

[DELETE] 刪除頁面 /api/channels/{channel_id}/layouts/{layout_id}
加入現有播放清單=>跳頁
新增播放清單=>跳頁
編輯=>跳頁
[PATCH] 拖動播放清單順序(批次) 
/api/layouts/{layout_id}/regions/{region_id}/objects
[DELETE] 移除播放清單 /api/framework/CMS/layouts/{layout_id}/regions/{region_id}/objects/{region_object_id}
[DELETE] 刪除播放清單 /api/framework/CMS/playlists/{playlist_id}
[PATCH] 儲存編輯 /api/framework/CMS/layouts/{layout_id}


## 3-2-4-2 新增/編輯區塊播放清單

![](https://hackmd.io/_uploads/SyP98qH02.png)

(UI誤植, 左邊應該是播放清單/播放清單預覽圖)

顯示=從上一層直接帶下來(/api/framework/CMS/layouts/{layout_id})
* 預覽圖 -> 第一個檔案的預覽圖
* 口 勾選我，讓這個影片靜音 -> "meta_data": { "is_mute": true }


[DELETE] 刪除播放清單 /api/framework/CMS/layouts/{layout_id}/regions/{region_id}/objects/{region_object_id}
新增檔案=>跳頁
[POST] 檔案加入到播放清單 /api/framework/CMS/playlists/{playlist_id}/objects

[POST] 更改觸控行為
/layouts/{layout_id}/regions/{region_id}/objects/{region_object_id}/actions
* payload:
```
{
  "actions": [
    {
      "playlist_object_id": "第一層的 playlist_id",
      "action_type": "GO_PAGE",
      "action_target": "第二層的 layout_od"
    }
  ]
}
```
[PUT] 更改觸控行為
/layouts/{layout_id}/regions/{region_id}/objects/{region_object_id}/actions/{region_object_id}

[PATCH] 區域畫布顏色 /api/framework/CMS/layouts/{layout_id}/regions/{region_id}
* 勾選我，讓這次的檔案都套用此次設定? -> 先不管這個
![](https://hackmd.io/_uploads/ryyvPb10n.png)

[DELETE] 全部刪除 /api/framework/CMS/layouts/{layout_id}/regions/{region_id}/objects/{region_object_id}/actions_and_schedules
* 這隻 API 只會**刪除所有 actions and schedules**, 檔案不會刪掉
* 跟很像的另一頁 3-3-1 的全部刪除行為不一樣

[?] 區塊底版 (沒有UI)
[PATCH] 拖動順序 /api/framework/CMS/layouts/{layout_id}/regions/{region_id}/objects/{region_object_id}
[DELETE] 刪除 /api/framework/CMS/playlists/{playlist_id}/objects/{object_id}
編輯=>跳頁
[POST] 複製 /api/framework/CMS/playlists/{playlist_id}/objects
[PATCH] 儲存編輯 /api/framework/CMS/playlists/{playlist_id}

![](https://hackmd.io/_uploads/HJXVVOSCh.jpg)

[POST] 新增檔案 /api/framework/CMS/upload
* 口 勾選我，讓上傳的檔案靜音 -> CMS 會再加

## 3-3-1 新增/編輯區塊播放清單
![](https://hackmd.io/_uploads/H1_Dx2TCh.png)
[DELETE] 全部刪除 /api/framework/CMS/playlists/{playlist_id}/objects
* 會刪掉播放清單底下所有檔案
* 跟上面 3-2-4-2 的全部刪除行為不一樣

## 3-4 媒體庫
![](https://hackmd.io/_uploads/HybLI_HA3.png)

[GET] 顯示 /api/framework/CMS/mediafiles 可以使用 category 作為 filter 

## 3-4-1-1 檔案上傳狀態
![](https://hackmd.io/_uploads/S1NBV_r02.jpg)


[GET] 顯示上傳狀態 /api/framework/CMS/upload-status

[DELETE] 刪除 /api/framework/CMS/upload/{upload_id}




## 3-2-4-2 加入現有播放清單
![](https://hackmd.io/_uploads/rkZ7P9SRn.png)

[GET] 顯示 /api/framework/CMS/playlists/ 用 width、heigh filter
[POST] 加入 /api/framework/CMS/layouts/{layout_id}/regions/{region_id}/objects
* object_type = 'playlist'
* object_id = playlist_id


## 3-2-4-2-2 檔案排程設定-2
![](https://hackmd.io/_uploads/ryq7v5B03.png)

[POST] 確定 /api/framework/CMS/layouts/{layout_id}/regions/{region_id}/objects/{region_object_id}/schedules

