# Builk-360 Dashboard API ## Preparing request ### Filter model > Every api use this filter model **Body Request** | Parameter | Description | Schema | | ---------------------------------- | ------------------------------------------ | ------------------------ | | projectId (*required*) | Identity project of data set | number | | userId (*required*) | Identity user of data set | number | | periodType (*required*) | Type Period time of data set | value of periodTypeEnum | | startDate (*option*) | required when periodType is date range | date (ISO format) | | endDate (*option*) | required when periodType is date range | date (ISO format) | #### Example Request #1 ```json { "projectId": 1, "userId": 15, "periodType": 1, "startDate": null, "endDate": null } ``` #### Example Request #2 ```json { "projectId": 44, "userId": 112, "periodType": 5, "startDate": "2021-02-21T08:45:42.547Z", "endDate": "2021-02-21T08:45:42.547Z" } ``` ### PeriodTypeEnum > Api will use this enum to mapping | Key | Value | Description | | --------- | -------| -------------------------------------------------------------------------------- | | Today | 1 | Dataset of the day | | ThisWeek | 2 | Dataset of the week | | ThisMonth | 3 | Dataset of the month | | Period | 4 | Dataset of choose period time *required startDate and endDate in filter model* | | Project | 5 | Dataset all time | ## Api request ### `POST api/v1/ProjectDashboard/ActivitySummary` ![](https://i.imgur.com/XqxySVb.png) **Response** | Parameter | Description | Schema | | ----------- | ----------------------------------------------------------------------------- | ------ | | data | ActivitySummaryModel | object | | status | 200 when has data, 204 hasn't data , 400 request error and 500 server error | number | | message | detail of error | string | **ActivitySummaryModel** | Parameter | Description | Schema | | ----------------- | ------------------ | ------ | | viewDetail | ValueDifferentModel | object | | commentPinsDetail | ValueDifferentModel | object | | commentDetail | ValueDifferentModel | object | | replyDetail | ValueDifferentModel | object | **ValueDifferentModel** | Parameter | Description | Schema | | ----------------- | ------------------------------------------------------------------- | ------ | | count | count value of data set | number | | diffOfPercentage | diff value of data set | number | | diffOfStatus | status of diff value -1 is negative , 0 is normaly and 1 is positive | number | #### Example Response #1 when success ```json { "data": { "viewDetail" : { "count" : 0, "diffOfPercentage" : 10, "diffOfStatus" : 0 }, "commentPinsDetail" : { "count" : 356, "diffOfPercentage" : 45, "diffOfStatus" : 1 }, "commentDetail" : { "count" : 687, "diffOfPercentage" : 32, "diffOfStatus" : 1 }, "replyDetail" : { "count" : 45, "diffOfPercentage" : 7, "diffOfStatus" : -1 } }, "status": 200, "message": "success" } ``` #### Example Response #2 when request error ```json { "data": null, "status": 400, "message": "PeriodTypeEnum Period is required startDate and endDate" } ``` ### `POST api/v1/ProjectDashboard/TypeOfCommentAndReplySummary` ![](https://i.imgur.com/js9Ij3R.png) **Response** | Parameter | Description | Schema | | ----------- | ----------------------------------------------------------------------------- | ------ | | data | TypeOfCommentAndReplySummaryModel | object | | status | 200 when has data, 204 hasn't data , 400 request error and 500 server error | number | | message | detail of error | string | **TypeOfCommentAndReplySummaryModel** | Parameter | Description | Schema | | ----------------- | ------------------ | ------ | | total | sum of comments and replies | number | | dataSet | Array of DataSetModel | object | **DataSetModel** | Parameter | Description | Schema | | ----------------- | ------------------------------------------------------------------- | ------ | | order | number for use order data row | number | | labelName | name of data row | string | | countComment | count of comment with name type this | number | | percentage | percentage of name type this in overall data | number | #### Example Response ```json { "data": { "total" : 999, "dataSet" : [ { "order" : 1, "labelName" : "NO TAG", "countComment" : 99, "percentage" : 5 }, { "order" : 2, "labelName" : "RFI", "countComment" : 99, "percentage" : 5 }, { "order" : 3, "labelName" : "DEFECT", "countComment" : 99, "percentage" : 5 }, { "order" : 4, "labelName" : "ACTION", "countComment" : 99, "percentage" : 5 }, { "order" : 5, "labelName" : "GOOD JOB", "countComment" : 99, "percentage" : 5 }, ] }, "status": 200, "message": "success" } ``` ### `POST api/v1/ProjectDashboard/CommentsActivity` ![](https://i.imgur.com/WDTWO8X.png) **Response** | Parameter | Description | Schema | | ----------- | ----------------------------------------------------------------------------- | ------ | | data | CommentsActivityModel | object | | status | 200 when has data, 204 hasn't data , 400 request error and 500 server error | number | | message | detail of error | string | **CommentsActivityModel** | Parameter | Description | Schema | | ----------------- | ------------------ | ------ | | total | sum of comments and replies | number | | dataSet | Array of DataSetModel | object | **DataSetModel** | Parameter | Description | Schema | | ----------------- | ------------------------------------------------------------------- | ------ | | order | number for use order data row | number | | labelName | name of data row | string | | countNoTag | count comment of no tag type | number | | countRFI | count comment of RFI type | number | | countDefect | count comment of defect type | number | | countAction | count comment of action type | number | | countGoodJob | count comment of good job type | number | #### Example Response ```json { "data": { "total" : 999, "dataSet" : [ { "order" : 1, "labelName" : "Sun", "countNoTag" : 99, "countRFI" : 99, "countDefect" : 99, "countAction" : 99, "countGoodJob" : 99, }, { "order" : 2, "labelName" : "Mon", "countNoTag" : 99, "countRFI" : 99, "countDefect" : 99, "countAction" : 99, "countGoodJob" : 99, }, ... ... ... { "order" : 7, "labelName" : "Sat", "countNoTag" : 99, "countRFI" : 99, "countDefect" : 99, "countAction" : 99, "countGoodJob" : 99, }, ] }, "status": 200, "message": "success" } ``` ### `POST api/v1/ProjectDashboard/UserMentionActivity` ![](https://i.imgur.com/6ZZI05z.png) **Additional Request** | Parameter | Description | Schema | | ----------------------- | ---------------------------------------------------------- | ------- | | filterType (*required*) | 0 = all , 1 = replied , 2 = not yet replied (default all) | number | | page (*required*) | number of pagination start at 0 | number | | perPage (*required*) | number of data return (-1 is take all) | number | **Response** | Parameter | Description | Schema | | ----------- | ----------------------------------------------------------------------------- | ------ | | data | Array of UserMentionActivityModel | object | | status | 200 when has data, 204 hasn't data , 400 request error and 500 server error | number | | message | detail of error | string | **UserMentionActivityModel** | Parameter | Description | Schema | | ---------------------- | ------------------------------------- | -------------------------- | | mentionName | name of user mention | string | | mentionImage | url image of user mention | string | | mentionDateTime | date time of master mention | date | | mentionType | type of mention | value of mentionTypeEnum | | mentionText | value of master mention | string | | mentionYourReplyText | has value when type is replied | string | | plan | location plan of activity | number | | tour | location tour of activity | number | | postNo | location postNo of activity | number | | comment | location comment of activity | number | **MentionTypeEnum** | Key | Value | Description | | --------- | -------| ----------- | | NoTag | 0 | | | RFI | 1 | | | Defect | 2 | | | Action | 3 | | | GoodJob | 4 | | | Replied | -1 | | #### Example Request ```json { "projectId": 62, "userId": 10, "periodType": 1, "startDate": null, "endDate": null, "filterType": 0, "page": 0, "perPage": -1, } ``` #### Example Response ```json { "data": [ { "mentionName" : "Patai", "mentionImage" : "url...", "mentionDateTime" : "2021-02-21T08:45:42.547Z", "mentionType" : 2, "mentionText" : "ขอข้อมูล meterial เพิ่ม", "mentionYourReplyText" : null, "plan" : 160, "tour" : 441, "postNo" : 01, "comment" : 01 }, { "mentionName" : "Pongsawat", "mentionImage" : "url...", "mentionDateTime" : "2021-02-21T08:45:42.547Z", "mentionType" : -1, "mentionText" : "ขอข้อมูล meterial เพิ่ม", "mentionYourReplyText" : "ปรับหน้างานแล้วคะ", "plan" : 160, "tour" : 441, "postNo" : 01, "comment" : 01 }, ... ... ... { "mentionName" : "Patai", "mentionImage" : "url...", "mentionDateTime" : "2021-02-21T08:45:42.547Z", "mentionType" : 2, "mentionText" : "ขอข้อมูล meterial เพิ่ม", "mentionYourReplyText" : null, "plan" : 160, "tour" : 441, "postNo" : 01, "comment" : 01 }, ], "status": 200, "message": "success" } ``` ### `POST api/v1/ProjectDashboard/ActivityRanking` ![](https://i.imgur.com/WUsVrAb.png) **Response** | Parameter | Description | Schema | | ----------- | ----------------------------------------------------------------------------- | ------ | | data | Array of UserActivityRankingModel | object | | status | 200 when has data, 204 hasn't data , 400 request error and 500 server error | number | | message | detail of error | string | **UserActivityRankingModel** | Parameter | Description | Schema | | -------------- | --------------------------------- | ------- | | userName | name of user has activity | string | | countComment | number of activity comment | number | | countMention | number of activity mention | number | | countReply | number of activity reply | number | | totalAction | sum of all activity | number | #### Example Response ```json { "data": [ { "userName" : "Patai", "countComment" : 99, "countMention" : 99, "countReply" : 99, "totalAction" : 297, }, { "userName" : "Patai", "countComment" : 99, "countMention" : 99, "countReply" : 99, "totalAction" : 297, } ], "status": 200, "message": "success" } ```