# Yake Mobile API   資料更新時間:2024/04/1 ## 異動內容(2024/04/1) 1.authTokene改authorization 2.關鍵字查詢Menber的response漏了一個firstOperationDate 3.更新使用者個人資訊,新增type, 9:首次記錄日期(firstOperationDate) ## 名詞定義 * User:醫生、美容師 * Member:會員、顧客、病患 ## Server統一回傳格式 ``` json // status : 0成功、1失敗、2token過期 //response of successful request: { "status": "0", "data": { //API 回傳內容 }, "message": "" // Or optional success message } //response of failed request: { "status": "1", "data": null, // Or optional success message "message": "Error Message" // Error Message } ``` ## User ### [POST] /user/Login >說明: >首次當入的話,參數帶account、passWord、serialNumber,Responses收到loginToken跟authToken。 >之後登入,參數帶account、passWord、loginToken,Responses收到authToken。 ##### Headers > 無 ##### Paremeters >|name|type|data type|description| > |-|-|-|-| > |account|required|String|帳號| > |passWord|required|String|密碼| > |serialNumber|optional|String|序號| > |loginToken|optional|String|loginToken| ##### Responses ``` json //如果參數收到serialNumber,就回傳loginToken跟authToken。 //如果參數收到loginToken,就回傳loginToken。 { "loginToken" : "loginToken", // 後需登入,使用的token "authorization" : "authorization", // 後續call api時,提server辨識身份。 } ``` ### [GET] /user/getOTP ##### Headers >|name|type|data type|description| > |-|-|-|-| > |authorization|required|String|驗證使用者身份| ##### Paremeters >無 ##### Responses ``` json { "otp" : "123456", } ```   ## Member 查詢 ### [GET] /member/searchByMemberData 個資查詢Menber > 說明: > 依照給的參數條件去做搜尋。參數name、phone、birthDay、memberID,同時只會存在一種。 > 有可能比對到多人,所以回傳MemberData array,MemberData只包含使用者的基本資料(List頁面呈現) > MemberData如Responses所示。 ##### Headers >|name|type|data type|description| > |-|-|-|-| > |authorization|required|String|驗證使用者身份| ##### Paremeters >|name|type|data type|description| > |-|-|-|-| > |name|optional|String|會員姓名| > |phone|optional|String|電話| > |birthDay|optional|String|生日(yyyy/mm/dd)| > |memberID|optional|String|編號| ##### Responses > 參數name、phone、birthDay、memberID,同時只會存在一種 > 有可能比對到多人,所以回傳MemberData array > MemberData只包含使用者的基本資料(List頁面呈現) ``` json [ { "memberID" : "memberID", "name" : "memberName", "gender" : 1, "birthDay" : "yyyy/mm/dd", "mobile" : "member手機", "phone" : "member電話", "height" : 170.2, //Double "weight" : 50.1, //Double "addredss" : "member住址", "firstOperationDate" : "yyyy/mm/dd", } ] ``` --- ### [GET] /member/searchByKeyWord 關鍵字查詢Menber > 說明: > 相較於searchByMemberData回傳的的MemberData,關鍵字查詢需要多給relatvie以利List畫面呈現 > keyword、searchType 希望也一並附在Responses ##### Headers >|name|type|data type|description| > |-|-|-|-| > |authorization|required|String|驗證使用者身份| ##### Paremeters >|name|type|data type|description| > |-|-|-|-| > |type|required|Int|查詢標的,0:事件紀錄、1:施作紀錄、2:購買紀錄、3:備註紀錄、4:施作產品紀錄、5:施作材料紀錄| > |keyWord|required|String|關鍵字| ##### Responses ``` json { "keyword": "痘疤", "searchType": 1, // 1:施作紀錄 "result": [{ "memberID" : "memberID", "name" : "memberName", "gender" : 1, "birthDay" : "yyyy/mm/dd", "mobile" : "member手機", "phone" : "member電話", "height" : 170.2, "weight" : 50.1, "addredss" : "member住址", "firstOperationDate" : "yyyy/mm/dd", "relative": "因為什麼原因,施作痘疤修復療程,然後怎樣怎樣" },] } ``` --- ### [POST][multipart] /member/searchByPhoto 基礎照片查詢Menber ##### Headers >|name|type|data type|description| > |-|-|-|-| > |authorization|required|String|驗證使用者身份| ##### Paremeters >|name|type|data type|description| > |-|-|-|-| > |photo|required|multipart/form-data|照片檔(PNG)| ##### Responses > 同searchByMemberData的回傳 --- ### [GET] /member/getMemberDetail 取得Member所有資料 ##### Headers >|name|type|data type|description| > |-|-|-|-| > |authorization|required|String|驗證使用者身份| ##### Paremeters >|name|type|data type|description| > |-|-|-|-| > |memberID|required|Int|memberID| ##### Responses ``` json { "memberID" : "memberID", "name" : "memberName", "gender" : 1, "birthDay" : "yyyy/mm/dd", "mobile" : "member手機", "phone" : "member電話", "height" : 170.2, "weight" : 50.1, "addredss" : "member住址", "firstOperationDate" : "yyyy/mm/dd", "eventRecord" : [ //事件紀錄 { "eventId":123, //事件ID "name":"事件名稱", "content":"事件描述內容....", }, ], "operationRecord" : [ //操作紀錄 { "operationId":123, //操作紀錄ID "name":"施作方式", "date":"yyyy/mm/dd", //施作日期 "method":"施作方法", "material":"使用材料", "materialCosts":2000, //材料費用 "operationCosts":20000, //施作費用 }, ], "purchaseRecord" : [ //購買紀錄 { "purchaseId":123, //購買紀錄ID "name":"產名稱", "date":"yyyy/mm/dd", //購買日期 "count":5, //購買數量 "unitPrice":500, //單價 "totalPrice":2500, //總價 }, ], "note" : "備註備註", //備註 "basicPhoto" : "basicPhoto", // 基礎照片網址 "photo" : [ // 其他照片網址 { "photoId":123, //購買紀錄ID "url":"photo_url", //相片網址 "date":"yyyy/mm/dd", //相片日期 "description":"XXX手術", //相片描述 }, ], } ``` --- ## MemberData 更新 ### [POST][multipart] /member/updateMemberPhoto 更新基礎照片 ##### Headers >|name|type|data type|description| > |-|-|-|-| > |authorization|required|String|驗證使用者身份| ##### Paremeters >|name|type|data type|description| > |-|-|-|-| > |memberID|required|Int|memberID| > |photo|required|multipart/form-data|照片檔(PNG) | ##### Responses ``` json { "status": "success", // or "error" "message": "" /* Or optional success message */ } ``` --- ### [POST] /member/updateMemberData 更新使用者個人資訊 ##### Headers >|name|type|data type|description| > |-|-|-|-| > |authorization|required|String|驗證使用者身份| ##### Paremeters >|name|type|data type|description| > |-|-|-|-| > |memberID|required|Int|memberID| > |type|required|Int|更改標的,0:姓名、1:手機、2:市話、3:生日、4:身高、5:體重、6:住址、7:性別、8:備註、9:首次記錄日期(firstOperationDate)| > |content|required|String|回傳內容,如果是性別,會回傳Int。身高、體重會回傳Double| ##### Responses ``` json { "status": "success", "data": null, "message": "" } ``` ### [POST] /member/updateEventRecord 更新事件紀錄 ##### Headers >|name|type|data type|description| > |-|-|-|-| > |authorization|required|String|驗證使用者身份| ##### Paremeters >|name|type|data type|description| > |-|-|-|-| > |memberID|required|Int|memberID| > |eventId|required|String| 事件ID| > |name|required|String|事件名稱| > |content|required|String|事件描述內容| ##### Responses ``` json { "status": "success", "data": null, "message": "" } ``` ### [POST] /member/updateOperationRecord 更新操作紀錄 ##### Headers >|name|type|data type|description| > |-|-|-|-| > |authorization|required|String|驗證使用者身份| ##### Paremeters >|name|type|data type|description| > |-|-|-|-| > |memberID|required|Int|memberID| > |operationId|required|String| operationId| > |name|required|String|施作方式| > |date|required|String|yyyy/mm/dd 施作日期| > |method|required|String|施作方法| > |material|required|String|使用材料| > |materialCosts|required|Int|材料費用| > |operationCosts|required|Int|施作費用| ##### Responses ``` json { "status": "success", "data": null, "message": "" } ``` ### [POST] /member/updatePurchaseRecord 更新購買紀錄 ##### Headers >|name|type|data type|description| > |-|-|-|-| > |authorization|required|String|驗證使用者身份| ##### Paremeters >|name|type|data type|description| > |-|-|-|-| > |memberID|required|Int|memberID| > |purchaseId|required|String| 購買紀錄ID| > |name|required|String|產品名稱| > |date|required|String|yyyy/mm/dd 購買日期| > |count|required|Int|購買數量| > |unitPrice|required|Int|單價| > |totalPrice|required|Int|總價| ##### Responses ``` json { "status": "success", "data": null, "message": "" } ``` ##### Headers >|name|type|data type|description| > |-|-|-|-| > |authorization|required|String|驗證使用者身份| ##### Paremeters >|name|type|data type|description| > |-|-|-|-| > |memberID|required|Int|memberID| > |type|required|Int|更改標的,0:事件紀錄、1:施作紀錄、2:購買紀錄、3:備註紀錄| > |recordID|required|String| 如果是事件就是事件ID,施作紀錄就是施作紀錄ID,以此類推。(備註紀錄沒有ID,所以填寫null)| > |content|required|String|如果事件紀錄就會是回傳事件紀錄的格式,以此類推| ##### Responses ``` json { "status": "success", "data": null, "message": "" } ``` ## MemberData 刪除照片 ### [GET] /member/deleteMemberPhoto ##### Headers >|name|type|data type|description| > |-|-|-|-| > |authorization|required|String|驗證使用者身份| ##### Paremeters >|name|type|data type|description| > |-|-|-|-| > |memberID|required|Int|memberID| > |photoID|required|String|要刪除的photoID| ##### Responses ``` json { "status": "success", // or "error" "message": "" /* Or optional success message */ } ``` --- ## MemberData 新增 ### [POST][multipart] /member/add 新增使用者 ##### Headers >|name|type|data type|description| > |-|-|-|-| > |authorization|required|String|驗證使用者身份| ##### Paremeters >|name|type|data type|description| > |-|-|-|-| > |memberData|required|JsonString|會員資料,範例如下| > |basicPhoto|required|multipart/form-data|照片檔(PNG) | ```json //會員資料JsonString { "name" : "memberName", "gender" : 1, "birthDay" : "yyyy/mm/dd", "mobile" : "member手機", "phone" : "member電話", "height" : 172.0, //Double "weight" : 55.0, //Double "addredss" : "member住址", "firstOperationDate" : "yyyy/mm/dd", "eventRecord" : [ //事件紀錄 { "eventId":123, //事件ID "name":"事件名稱", "content":"事件描述內容....", }, ], "operationRecord" : [ //操作紀錄 { "operationId":123, //操作紀錄ID "name":"施作方式", "date":"yyyy/mm/dd", //施作日期 "method":"施作方法", "material":"使用材料", "materialCosts":2000, //材料費用 "operationCosts":20000, //施作費用 }, ], "purchaseRecord" : [ //購買紀錄 { "purchaseId":123, //購買紀錄ID "name":"產名稱", "date":"yyyy/mm/dd", //購買日期 "count":5, //購買數量 "unitPrice":500, //單價 "totalPrice":2500, //總價 }, ], "note" : "備註備註", //備註 "photo" : [ // 其他照片網址 { "photoId":123, //購買紀錄ID "url":"photo_url", //相片網址 "date":"yyyy/mm/dd", //相片日期 "description":"XXX手術", //相片描述 }, ], } ``` ##### Responses ``` json { "status": "success", "data": null, "message": "" } ``` --- ### [POST][multipart] /member/addMemberPhoto 新增照片 ##### Headers >|name|type|data type|description| > |-|-|-|-| > |authorization|required|String|驗證使用者身份| ##### Paremeters >|name|type|data type|description| > |-|-|-|-| > |date|required|String|yyyy/mm/dd| > |description|required|String|相片描述| > |photo|required|multipart/form-data|照片檔(PNG) | ##### Responses ``` json { "status": "success", "data": null, "message": "" } ``` ---