👔 Update answer if the poll answered
This commit is contained in:
parent
e16201a3ad
commit
a2633e6494
@ -12,6 +12,22 @@ import (
|
|||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func getMyPollAnswer(c *fiber.Ctx) error {
|
||||||
|
if err := sec.EnsureAuthenticated(c); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
user := c.Locals("user").(authm.Account)
|
||||||
|
|
||||||
|
pollId, _ := c.ParamsInt("pollId")
|
||||||
|
|
||||||
|
var answer models.PollAnswer
|
||||||
|
if err := database.C.Where("poll_id = ? AND account_id = ?", pollId, user.ID).First(&answer).Error; err != nil {
|
||||||
|
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.JSON(answer)
|
||||||
|
}
|
||||||
|
|
||||||
func answerPoll(c *fiber.Ctx) error {
|
func answerPoll(c *fiber.Ctx) error {
|
||||||
pollId, _ := c.ParamsInt("pollId")
|
pollId, _ := c.ParamsInt("pollId")
|
||||||
|
|
||||||
|
@ -12,22 +12,6 @@ import (
|
|||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
func getMyPollAnswer(c *fiber.Ctx) error {
|
|
||||||
if err := sec.EnsureAuthenticated(c); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
user := c.Locals("user").(authm.Account)
|
|
||||||
|
|
||||||
pollId, _ := c.ParamsInt("pollId")
|
|
||||||
|
|
||||||
var answer models.PollAnswer
|
|
||||||
if err := database.C.Where("poll_id = ? AND account_id = ?", pollId, user.ID).First(&answer).Error; err != nil {
|
|
||||||
return fiber.NewError(fiber.StatusNotFound, err.Error())
|
|
||||||
}
|
|
||||||
|
|
||||||
return c.JSON(answer)
|
|
||||||
}
|
|
||||||
|
|
||||||
func getPoll(c *fiber.Ctx) error {
|
func getPoll(c *fiber.Ctx) error {
|
||||||
pollId, _ := c.ParamsInt("pollId")
|
pollId, _ := c.ParamsInt("pollId")
|
||||||
|
|
||||||
|
@ -25,8 +25,14 @@ func AddPollAnswer(poll models.Poll, answer models.PollAnswer) (models.PollAnswe
|
|||||||
answer.PollID = poll.ID
|
answer.PollID = poll.ID
|
||||||
|
|
||||||
var count int64
|
var count int64
|
||||||
if err := database.C.Model(&models.PollAnswer{}).Where("poll_id = ? AND account_id = ?", poll.ID, answer.AccountID).Count(&count).Error; err != nil {
|
if err := database.C.Model(&models.PollAnswer{}).
|
||||||
return answer, fmt.Errorf("you already answered the poll")
|
Where("poll_id = ? AND account_id = ?", poll.ID, answer.AccountID).
|
||||||
|
Count(&count).Error; err != nil {
|
||||||
|
if err := database.C.Model(&models.PollAnswer{}).Where("poll_id = ? AND account_id = ?", poll.ID, answer.AccountID).Update("answer", answer.Answer).Error; err != nil {
|
||||||
|
return answer, fmt.Errorf("failed to update your answer")
|
||||||
|
}
|
||||||
|
|
||||||
|
return answer, nil
|
||||||
}
|
}
|
||||||
if err := database.C.Create(&answer).Error; err != nil {
|
if err := database.C.Create(&answer).Error; err != nil {
|
||||||
return answer, err
|
return answer, err
|
||||||
|
Loading…
x
Reference in New Issue
Block a user