# 使用者管理
## 使用者管理
### (OK) 新增使用者
Request:
POST /user
Payload:
```json=
{
"username": "帳號(證件號碼) <string>",
"name": "使用者名稱 <string>",
"birthDate": "使用者生日 <string>",
// birthDate Regex: ([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?
"gender": "性別 <string> enum: [ male | female | other | unknown ]",
"telecomEmail": "主要信箱 <string>",
"telecomSubEmail": "次要信箱 <string>",
"telecomPhone": "手機號碼 <string>",
"managingOrganization": "單位組織編號(FHIR Server 中的 org id) <number>",
"role": ["角色 ID <string>"], // 非必填,不填則無任角色 / 權限
"nationality": "國籍 <string> 參考 ISO 3166-1 二位字母代號",
"comment": "備註 <string>",
"active": "是否啟用 <boolean>",
"createdAt": "建立時間 <number, bigint>"
}
```
Response (成功):
```json=
{
"success": true,
"data": {
"id": "使用者編號 <string>",
"username": "帳號(證件號碼) <string>",
"name": "使用者名稱 <string>",
"birthDate": "使用者生日 <string>",
// birthDate Regex: ([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?
"gender": "性別 <string> enum: [ male | female | other | unknown ]",
"telecomEmail": "主要信箱 <string>",
"telecomSubEmail": "次要信箱 <string>",
"telecomPhone": "手機號碼 <string>",
"managingOrganization": "單位組織編號 <string>",
"role": ["角色 ID <string>"], // 非必填,不填則無任角色 / 權限
"nationality": "國籍 <string> 參考 ISO 3166-1 二位字母代號",
"comment": "備註 <string>",
"active": "是否啟用 <boolean>",
"createdAt": "建立時間 <number, bigint>"
}
}
```
### (OK) 編輯使用者
Request:
PUT /user/$id
Payload:
```json=
{
"username": "帳號(證件號碼) <string>",
"name": "使用者名稱 <string>",
"birthDate": "使用者生日 <string>",
// birthDate Regex: ([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?
"gender": "性別 <string> enum: [ male | female | other | unknown ]",
"telecomEmail": "主要信箱 <string>",
"telecomSubEmail": "次要信箱 <string>",
"telecomPhone": "手機號碼 <string>",
"managingOrganization": "單位組織編號 <string>",
"role": ["角色 ID <string>"], // 非必填,不填則無任角色 / 權限
"nationality": "國籍 <string> 參考 ISO 3166-1 二位字母代號",
"comment": "備註 <string>",
"active": "是否啟用 <boolean>",
"role": ["角色 ID"]
}
```
Response (成功):
```json=
{
"success": true,
"data": [
"updatedAt": "更新時間 <number, bigint>"
]
}
```
### (OK) 移除使用者
Request:
DEL /user/$id
Response (成功):
```json=
{
"success": true
}
```
### (OK) 停用/啟用使用者
Request:
PUT /user/$id/activate
Payload:
```json=
{
"active": "是否啟用 <boolean>"
}
```
Response (成功):
```json=
{
"success": true
}
```
### (OK) 查看使用者清單
Request:
GET /user?$queryParams
[Query Params:](Untitled%202/Query%20Params.csv)
Response (成功):
```json=
{
"success": true,
"data": [
{
"id": "使用者編號 <string>",
"username": "帳號(證件號碼) <string>",
"name": "使用者名稱 <string>",
"birthDate": "使用者生日 <string>",
// birthDate Regex: ([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?
"gender": "性別 <string> enum: [ male | female | other | unknown ]",
"telecomEmail": "主要信箱 <string>",
"telecomSubEmail": "次要信箱 <string>",
"telecomPhone": "手機號碼 <string>",
"managingOrganizationId": "單位組織編號 <string>",
"managingOrganizationName": "單位組織名稱 <string>",
"managingOrganizationType": "單位組織類型 <string>",
"role": ["角色 <string>"],
"nationality": "國籍 <string> 參考 ISO 3166-1 二位字母代號",
"comment": "備註 <string>",
"active": "是否啟用 <boolean>",
"updateAt": "更新時間 <number, bigint>"
},
...
]
}
```
### (OK) 查看個別使用者資料
Request:
GET /user/$id
Response (成功):
```json=
{
"success": true,
"data": [
{
"id": "使用者編號 <string>",
"name": "使用者名稱 <string>",
"birthDate": "使用者生日 <string>",
// birthDate Regex: ([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?
"gender": "性別 <string> enum: [ male | female | other | unknown ]",
"email": "主要信箱 <string>",
"subEmail": "次要信箱 <string>",
"phone": "手機號碼 <string>",
"managingOrganizationId": "單位組織編號 <string>",
"managingOrganizationName": "單位組織名稱 <string>",
"managingOrganizationType": "單位組織類型 <string>",
"role": ["角色 ID <string>"],
"nationality": "國籍 <string> 參考 ISO 3166-1 二位字母代號",
"comment": "備註 <string>",
"active": "是否啟用 <boolean>",
"updateAt": "更新時間 <number, bigint>"
}
]
}
```
### (OK) 查看使用者資料(自己的)
Request:
GET /user/me
Response (成功):
```json=
{
"success": true,
"data": {
"id": "使用者編號 <string>",
"name": "使用者名稱 <string>",
"birthDate": "使用者生日 <string>",
// birthDate Regex: ([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?
"gender": "性別 <string> enum: [ male | female | other | unknown ]",
"email": "主要信箱 <string>",
"subEmail": "次要信箱 <string>",
"phone": "手機號碼 <string>",
"managingOrganizationId": "單位組織編號 <string>",
"managingOrganizationName": "單位組織名稱 <string>",
"managingOrganizationType": "單位組織類型 <string>",
"role": ["角色 ID <string>"],
"nationality": "國籍 <string> 參考 ISO 3166-1 二位字母代號",
"comment": "備註 <string>",
"active": "是否啟用 <boolean>",
"updateAt": "更新時間 <number, bigint>"
}
}
```
### (OK) 查看使用者權限
Request:
GET /user/permission/$id
Response (成功):
```json=
{
"success": true,
"data":{
"permission": {
"caseMgmt": {
"caseList": {
"addCase": "RW"
},
"caseContent": {
"info": "RW",
"physiological": "RW",
"diet": "RW",
"state": "RW",
"course": "RW"
}
},
"calendarMgmt": {
"courseReservation": "RW"
},
"statisticalReport": {
"physiological": "R",
"caseMgmt": "R",
"course": "R"
},
"courseMgmt": {
"courseSchedule": "R",
"courseLesson": "RW"
},
"caseTypeMgmt": {
"caseTypeMgmt": "R"
}
}
}
}
```