go mod init backend
go mod tidy
go run .
需要修改firbase的project ID、Web API Key及serviceAccount.json,其中project ID和Web API Key須放在config.txt中(格式如下),config.txt要在database資料夾中
Web API Key: 專案設定內查看
firbase project id: 專案設定內查看
serviceAccount.json: https://sharma-vikashkr.medium.com/firebase-how-to-setup-a-firebase-service-account--6a70bb6646
gin -p 8081 -a 8000 run .
{WEB KEY API}
{PROJECT ID}
{JWT KEY}
{app url}:{app port}
,最後面一定要 /
結尾。
POST /signin/
Request:
{
"email": "[email]",
"password": "[password]"
}
POST /signup/
{
"email": "[email]",
"password": "[password]"
}
POST /forgot/
{
"email": "[email]"
}
GET /user/{user_email}/
Required JWT
PUT /user/{user_email}/
{
"avatar": "[avatar base64]",
"bio": "[bio]",
"nickname": "[nickname]",
}
Required JWT
PUT /user/{user_email}/reset
{
"oldPassword": "[old password]",
"newPassword": "[new password]"
}
Required JWT
GET /user/{user_email}/calendar
Required JWT
POST /refresh/
GET /hello/
list user's project
GET /user/{user_email}/project/
GET /user/{user_email}/project/{project_name}/
Required JWT
POST /user/{user_email}/project/
{
"name": "[project name]",
"devTools": [],
"devMode": "[waterfall|scrum]"
}
project name 不應包含 # \ ? % * : | " < >
。
Required JWT
PUT /user/{user_email}/project/{project_name}/
{
"devTools": [],
"devMode": "[waterfall|scrum]"
}
Required JWT
DELETE /user/{user_email}/project/{project_name}/
GET /user/{user_email}/project/{project_name}/repo/
Required JWT
POST /user/{user_email}/project/{project_name}/repo/
{
"name": "[repo name]",
"url": "[repo url]"
}
Required JWT
PUT /user/{user_email}/project/{project_name}/repo/
{
"id": "[repo id]",
"name": "[repo name]",
"url": "[repo url]"
}
Required JWT
DELETE /user/{user_email}/project/{project_name}/repo/
{
"id": "[repo id]"
}
Required JWT
POST /user/{user_email}/project/{project_name}/kanban/
Required JWT
GET /user/{user_email}/project/{project_name}/kanban/
Required JWT
POST /user/{user_email}/project/{project_name}/kanban/
{
"name": "[workflow name]"
}
Required JWT
PUT /user/{user_email}/project/{project_name}/kanban/
{
"id": "[workflow ID]",
"name": "[workflow name]"
}
Required JWT
DELETE /user/{user_email}/project/{project_name}/kanban/
{
"id": "[workflow ID]"
}
Required JWT
POST /user/{user_email}/project/{project_name}/kanban/task/
{
"name": "[task name]",
"workflowId": "[workflow ID]",
"description": "[task description]"
}
Required JWT
PUT /user/{user_email}/project/{project_name}/kanban/task/
{
"id": "[task ID]",
"name": "[task name]",
"description": "[task description]"
}
Required JWT
PATCH /user/{user_email}/project/{project_name}/kanban/task/
{
"id": "[task ID]",
"newWorkflowId": "[new workflow ID]"
}
Required JWT
DELETE /user/{user_email}/project/{project_name}/kanban/task/
{
"id": "[task ID]",
}
Required JWT
GET /user/{user_email}/project/{project_name}/member/
Required JWT
POST /user/{user_email}/project/{project_name}/member/
{
"email": "[member email]"
}
Required JWT
DELETE /user/{user_email}/project/{project_name}/member/
{
"email": "[member email]"
}
Required JWT
GET /user/{user_email}/project/{project_name}/docs/
Required JWT
POST /user/{user_email}/project/{project_name}/docs/
{
"title": "[doc title]",
"content": "[doc content]"
}
Required JWT
PUT /user/{user_email}/project/{project_name}/docs/
{
"id": "[doc id]",
"title": "[doc title]",
"content": "[doc content]"
}
Required JWT
DELETE /user/{user_email}/project/{project_name}/docs/
{
"id": "[doc id]"
}
測試帳號: test0@test.com / 123456
- 登入
- 註冊
- 登出
- 忘記密碼
- 創建專案
- 取得目前使用者的專案
- 刪除專案(只能由專案擁有者操作)
- JWT登入驗證
- JWT權限驗證
- Refresh JWT token
- 取得目前專案中的所有Repo
- 增加Repo(只能由專案成員操作)
- 刪除Repo(只能由專案成員操作)
- 創建看板(在創建專案時同時創建專案看板,未檢查專案與看板是否一對一)
- 取得看板
- 新增看板任務(Todo, InProgress, Done)
- 刪除看板任務(Todo, InProgress, Done)
- 編輯看板任務(Todo, InProgress, Done)
- 邀請加入專案
- google日曆授權
- 將 Request model
不能有 / \ ? % * : | \ " < >