Advertisement
Guest User

icfeowhevpwc

a guest
Nov 21st, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. func ReviewReport(c *gin.Context) {
  2. iKeyresultReportID, err := strconv.ParseInt(c.Param("id"), 10, 64)
  3. if err != nil {
  4. utils.ErrResponse(c, http.StatusInternalServerError, "KEYRESULTS_REVIEW_REPORT_ID_ERROR", "parameter 'id' couldn't be parsed to int64", err)
  5. return
  6. }
  7.  
  8. var keyresultReport keyresultsModel.KeyresultReportStatus
  9. keyresultReport.KeyresultReportID = iKeyresultReportID
  10.  
  11. if err := c.ShouldBindJSON(&keyresultReport); err == nil {
  12. rowsAffected, err := keyresultsModel.ReviewKeyresultReport(&keyresultReport)
  13.  
  14. if err == nil {
  15. c.JSON(http.StatusOK, gin.H{"keyresultReportsReviewed": rowsAffected})
  16.  
  17. switch keyresultReport.Status {
  18. case 1:
  19. //userID, _ := middleware.Auth.GetClaim(c, "uid").(int64)
  20. //keyresultsModel.AddPointsToTheUser(keyresultReport.KeyresultReportID,userID)
  21. //if(err)
  22. fmt.Println("accepted")
  23.  
  24. case 2:
  25. //subPoints()
  26. fmt.Println("declined")
  27. case 3:
  28. fmt.Println("change_requested")
  29.  
  30. case 0:
  31. fmt.Println("pending")
  32. }
  33.  
  34. } else {
  35. utils.ErrResponse(c, http.StatusInternalServerError, "KEYRESULTS_REVIEW_REPORT_INTERNAL_ERROR", "submitting a review of a keyresult report", err)
  36. }
  37. } else {
  38. utils.ErrResponse(c, http.StatusInternalServerError, "KEYRESULTS_REVIEW_REPORT_ERROR", "misformatted request while submitting a review of a keyresult report", err)
  39. }
  40. }
  41.  
  42.  
  43. func ReviewKeyresultReport(keyresultReport *KeyresultReportStatus) (int64, error) {
  44. result, err := db.NamedExec("UPDATE KeyresultReports SET Status = :Status WHERE KeyresultReportID = :KeyresultReportID", keyresultReport)
  45. if err != nil {
  46. return 0, err
  47. } else {
  48. return result.RowsAffected()
  49. }
  50. }
  51.  
  52. func AddPointsToTheUser(keyresultReportID int64, userID int64) (int64, error) {
  53. tx := db.MustBegin()
  54. var points int64
  55. 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)
  56. if err != nil {
  57. tx.Rollback()
  58. return 0, err
  59. }
  60.  
  61. result, err := db.Exec("UPDATE Users2Workspaces SET Points = ? WHERE UserID = ? AND WorkspaceID = ?", points, userID)
  62. if err != nil {
  63. tx.Rollback()
  64. return 0, err
  65. }
  66.  
  67. err = tx.Commit()
  68. if err != nil {
  69. return 0, err
  70. }
  71. return result.RowsAffected()
  72. }
  73. /* ~ RouteGroup: KEYRESULT REPORTS ~ */
  74. routesKeyresultReports := Instance.Group("/keyresult-reports")
  75. {
  76. protected(routesKeyresultReports, "REVIEW_KEYRESULT_REPORT").PATCH("/report/:id/review", keyresults.ReviewReport)
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement