Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func ReviewReport(c *gin.Context) {
- iKeyresultReportID, err := strconv.ParseInt(c.Param("id"), 10, 64)
- if err != nil {
- utils.ErrResponse(c, http.StatusInternalServerError, "KEYRESULTS_REVIEW_REPORT_ID_ERROR", "parameter 'id' couldn't be parsed to int64", err)
- return
- }
- var keyresultReport keyresultsModel.KeyresultReportStatus
- keyresultReport.KeyresultReportID = iKeyresultReportID
- if err := c.ShouldBindJSON(&keyresultReport); err == nil {
- rowsAffected, err := keyresultsModel.ReviewKeyresultReport(&keyresultReport)
- if err == nil {
- c.JSON(http.StatusOK, gin.H{"keyresultReportsReviewed": rowsAffected})
- switch keyresultReport.Status {
- case 1:
- //userID, _ := middleware.Auth.GetClaim(c, "uid").(int64)
- //keyresultsModel.AddPointsToTheUser(keyresultReport.KeyresultReportID,userID)
- //if(err)
- fmt.Println("accepted")
- case 2:
- //subPoints()
- fmt.Println("declined")
- case 3:
- fmt.Println("change_requested")
- case 0:
- fmt.Println("pending")
- }
- } else {
- utils.ErrResponse(c, http.StatusInternalServerError, "KEYRESULTS_REVIEW_REPORT_INTERNAL_ERROR", "submitting a review of a keyresult report", err)
- }
- } else {
- utils.ErrResponse(c, http.StatusInternalServerError, "KEYRESULTS_REVIEW_REPORT_ERROR", "misformatted request while submitting a review of a keyresult report", err)
- }
- }
- func ReviewKeyresultReport(keyresultReport *KeyresultReportStatus) (int64, error) {
- result, err := db.NamedExec("UPDATE KeyresultReports SET Status = :Status WHERE KeyresultReportID = :KeyresultReportID", keyresultReport)
- if err != nil {
- return 0, err
- } else {
- return result.RowsAffected()
- }
- }
- func AddPointsToTheUser(keyresultReportID int64, userID int64) (int64, error) {
- tx := db.MustBegin()
- var points int64
- err := db.QueryRow("SELECT k.points as Points FROM KeyresultReports as r LEFT JOIN Keyresults as k ON r.KeyresultID = k.KeyresultID WHERE r.KeyresultReportID = ?", keyresultReportID).Scan(&points)
- if err != nil {
- tx.Rollback()
- return 0, err
- }
- result, err := db.Exec("UPDATE Users2Workspaces SET Points = ? WHERE UserID = ? AND WorkspaceID = ?", points, userID)
- if err != nil {
- tx.Rollback()
- return 0, err
- }
- err = tx.Commit()
- if err != nil {
- return 0, err
- }
- return result.RowsAffected()
- }
- /* ~ RouteGroup: KEYRESULT REPORTS ~ */
- routesKeyresultReports := Instance.Group("/keyresult-reports")
- {
- protected(routesKeyresultReports, "REVIEW_KEYRESULT_REPORT").PATCH("/report/:id/review", keyresults.ReviewReport)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement