pmb restful api python wrap
Project description
就是個簡單的 Pmb Restful Api Wrap
需要二個環境變數
- AUTH_URL
用來指定公司統一登入(ad)的 api 網址
- PMB_API_URL
用來指定 pmb 服務的網址
除錯專用
可以追加設定 DEBUG 環境變數
有設定 DEBUG 的話就可以用 PMB_API_URL_DEBUG 來指定 Pmb 服務的網址
例
DEBUG=True
PMB_API_URL_DEBUG=http://127.0.0.1:5000
使用範例
import pmb_py as pmb
from pmb_py import log_in, log_out
log_in(YOUR_USERNAME, YOUR_PASSWORD)
# log_in(YOUR_USERNAME, YOUR_PASSWORD, mode='pmb')
# mode 指定為 'pmb' 時會切換成 pmb 自己的登錄方式, 'ad' 為預設值
quert_result = pmb.api.Projects.list()
print(quert_result.result)
# list 會回傳 QueryResult 物件
project = pmb.api.Projects.get(id=100)
print(project)
# 未找到的話會引發 PmbError 例外
log_out() # 記得登出
目前未對權限部份做太多著墨,所以想用的同事,請記得問一下專用的登入帳號密碼
不然可能會因為權限的問題使得功能無法操作
查詢
list()
list() 接受以 keyword 引數的方式查詢,可以接受 limit
引數,預設為 1000,最大為 4000
使用範例
import pmb_py as pmb
from pmb_py import log_in, log_out
q_result = pmb.api.GanttItem.list(project_id=1311)
print(q_result.results)
q_result = pmb.api.Blocks.list(project_id=1311, type_id=2)
print(q_result.results)
get()
get() 固定接收 id 做為查詢依據,查無物件會引發異常
QueryResult 物件
屬性說明
-
limit = limit
本次查詢的數量限制
-
next = next
查詢的下一頁
-
previous = previous
查詢的上一頁
-
results = results
查詢的結果
-
start = start
查詢的啟始數
-
total_count = total_count
全部的數量
-
query_params(): 把查詢參數字典化
此外還有一個 first() 函式方便取得第一個元素,取不到時回傳 None
建立
可接受所有可用欄位當做 keyword 建立物件,不要給 id
例
gantt_item = pmb_py.api.GanttItems.create(
name='test',
task_type=4,
project_id=5,
sg_task_id=15000,
read_only=True,
status='',
)
更新
可接受所有可用欄位當做 keyword 更新物件,固定以 id 為第一位引數
pmb_py.api.GanttItems.update(5, legend='test update')
刪除
固定以 id 為第一位引數, 回傳 True
或 False
,
pmb_py.api.GanttItems.remove(5)
Projects
list
- 當給予
member_id
引數時其他引數將會無效,會回傳指定的member_id
所有專案
歷史更新紀錄
V 0.4.5 增加對 project 欄位 meta(誤植為 mata)的支援
V 0.4.4 增加對 is_evaluation 的支援
V 0.4.3.0 增加對應 Project 的 total extra cost 欄位
V 0.4.2.1 修正 cookie 的更名, 修正 header
V 0.4.2 修正對 pmb 2.6.0 之後的登入機制支援(只剩 pmb 自己的 login api 登錄)
V 0.4.1 增加對 pmb 的新登入機制支援(ad 跟 pmb 自己的登錄)
V 0.4.0 增加對 pmb session 支援
v 0.3.4 增加對 gantt task api (api.anttTasks) 的支援
v 0.3.3 增加欄位 (對應 pmb 0.2.0 版的 api)
V 0.3.2 add Project new column "hour_type"
V 0.3.1 add query_params method for QueryResult
V 0.3.0 add blocks_between_date function
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.