update with new update repo methods
This commit is contained in:
parent
ebbfd4d353
commit
f16fc68e24
4
go.mod
4
go.mod
@ -2,12 +2,11 @@ module gitea.pena/SQuiz/core
|
||||
|
||||
go 1.23.8
|
||||
|
||||
|
||||
require (
|
||||
gitea.pena/PenaSide/common v0.0.0-20250421103113-7e4b3ae9e1e0
|
||||
gitea.pena/PenaSide/hlog v0.0.0-20241125221102-a54c29c002a9
|
||||
gitea.pena/PenaSide/trashlog v0.0.0-20250224122049-ddb4d72e9d07
|
||||
gitea.pena/SQuiz/common v0.0.0-20250514124515-870e52266ca5
|
||||
gitea.pena/SQuiz/common v0.0.0-20250531072420-f9ec7a513967
|
||||
github.com/caarlos0/env/v8 v8.0.0
|
||||
github.com/go-redis/redis/v8 v8.11.5
|
||||
github.com/gofiber/fiber/v2 v2.52.6
|
||||
@ -25,6 +24,7 @@ require (
|
||||
)
|
||||
|
||||
require (
|
||||
gitea.pena/PenaSide/linters-golang v0.0.0-20241207122018-933207374735 // indirect
|
||||
github.com/ClickHouse/clickhouse-go v1.5.4 // indirect
|
||||
github.com/andybalholm/brotli v1.1.1 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||
|
4
go.sum
4
go.sum
@ -3,10 +3,14 @@ gitea.pena/PenaSide/common v0.0.0-20250421103113-7e4b3ae9e1e0 h1:+gvpAPo1+1WtCpA
|
||||
gitea.pena/PenaSide/common v0.0.0-20250421103113-7e4b3ae9e1e0/go.mod h1:91EuBCgcqgJ6mG36n2pds8sPwwfaJytLWOzY3h2YFKU=
|
||||
gitea.pena/PenaSide/hlog v0.0.0-20241125221102-a54c29c002a9 h1:tBkXWNIt8icmkMMnq8MA421RWkUy4OZh5P7C3q8uCu4=
|
||||
gitea.pena/PenaSide/hlog v0.0.0-20241125221102-a54c29c002a9/go.mod h1:sanhSL8aEsfcq21P+eItYiAnKAre+B67nGJmDfk2cf0=
|
||||
gitea.pena/PenaSide/linters-golang v0.0.0-20241207122018-933207374735 h1:jDVeUhGBTXBibmW5dmtJg2m2+z5z2Rf6J4G0LpjVoJ0=
|
||||
gitea.pena/PenaSide/linters-golang v0.0.0-20241207122018-933207374735/go.mod h1:gdd+vOT6up9STkEbxa2qESLIMZFjCmRbkcheFQCVgZU=
|
||||
gitea.pena/PenaSide/trashlog v0.0.0-20250224122049-ddb4d72e9d07 h1:bUIUgzXQt16aBqSccI//BaODpRCTIaqlddSepM98QSc=
|
||||
gitea.pena/PenaSide/trashlog v0.0.0-20250224122049-ddb4d72e9d07/go.mod h1:GRfWJerTUlgy82CiYAxE4tVYSVV54zEJJQy17Fx46E4=
|
||||
gitea.pena/SQuiz/common v0.0.0-20250514124515-870e52266ca5 h1:C+iCsGMSUJonOTNNk8wWYOfzZ0Jjw+2IQ5FaEGwRVT0=
|
||||
gitea.pena/SQuiz/common v0.0.0-20250514124515-870e52266ca5/go.mod h1:zCrUwDh0APpztKk6NUqTZv+zhjVbWpGBJiJ5z9dAH0U=
|
||||
gitea.pena/SQuiz/common v0.0.0-20250531072420-f9ec7a513967 h1:pS6MAVGSp/84d8TpX8g+xlcKAgkf3ordEWFtpN9Evu0=
|
||||
gitea.pena/SQuiz/common v0.0.0-20250531072420-f9ec7a513967/go.mod h1:zCrUwDh0APpztKk6NUqTZv+zhjVbWpGBJiJ5z9dAH0U=
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0=
|
||||
github.com/ClickHouse/clickhouse-go v1.5.4/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI=
|
||||
|
@ -594,12 +594,22 @@ func (s *Quiz) CreateQuizAuditory(ctx *fiber.Ctx) error {
|
||||
func (s *Quiz) GetQuizAuditory(ctx *fiber.Ctx) error {
|
||||
quizIDStr := ctx.Params("quizID")
|
||||
quizID, err := strconv.ParseInt(quizIDStr, 10, 64)
|
||||
if err != nil {
|
||||
if err != nil || quizID == 0 {
|
||||
return ctx.Status(fiber.StatusBadRequest).SendString("invalid quiz ID")
|
||||
}
|
||||
|
||||
if quizID == 0 {
|
||||
return ctx.Status(fiber.StatusBadRequest).SendString("invalid quiz ID")
|
||||
accountID, ok := middleware.GetAccountId(ctx)
|
||||
if !ok {
|
||||
return ctx.Status(fiber.StatusUnauthorized).SendString("account id is required")
|
||||
}
|
||||
|
||||
isOwner, err := s.dal.QuizRepo.CheckQuizOwner(ctx.Context(), accountID, uint64(quizID))
|
||||
if err != nil {
|
||||
return ctx.Status(fiber.StatusInternalServerError).SendString("failed to check ownership: " + err.Error())
|
||||
}
|
||||
|
||||
if !isOwner {
|
||||
return ctx.Status(fiber.StatusForbidden).SendString("you are not the owner")
|
||||
}
|
||||
|
||||
result, err := s.dal.QuizRepo.GetQuizAudience(ctx.Context(), quizID)
|
||||
@ -613,15 +623,30 @@ func (s *Quiz) GetQuizAuditory(ctx *fiber.Ctx) error {
|
||||
func (s *Quiz) DeleteQuizAuditory(ctx *fiber.Ctx) error {
|
||||
quizIDStr := ctx.Params("quizID")
|
||||
quizID, err := strconv.ParseInt(quizIDStr, 10, 64)
|
||||
if err != nil || quizID == 0 {
|
||||
return ctx.Status(fiber.StatusBadRequest).SendString("invalid quiz ID")
|
||||
}
|
||||
|
||||
audienceIDStr := ctx.Params("audienceID")
|
||||
audienceID, err := strconv.ParseInt(audienceIDStr, 10, 64)
|
||||
if err != nil || audienceID == 0 {
|
||||
return ctx.Status(fiber.StatusBadRequest).SendString("invalid audience ID")
|
||||
}
|
||||
|
||||
accountID, ok := middleware.GetAccountId(ctx)
|
||||
if !ok {
|
||||
return ctx.Status(fiber.StatusUnauthorized).SendString("account id is required")
|
||||
}
|
||||
|
||||
isOwner, err := s.dal.QuizRepo.CheckIsOwnerAudience(ctx.Context(), quizID, audienceID, accountID)
|
||||
if err != nil {
|
||||
return ctx.Status(fiber.StatusBadRequest).SendString("invalid quiz ID")
|
||||
return ctx.Status(fiber.StatusInternalServerError).SendString("failed to check ownership: " + err.Error())
|
||||
}
|
||||
if !isOwner {
|
||||
return ctx.Status(fiber.StatusForbidden).SendString("you are not the owner of this quiz audience")
|
||||
}
|
||||
|
||||
if quizID == 0 {
|
||||
return ctx.Status(fiber.StatusBadRequest).SendString("invalid quiz ID")
|
||||
}
|
||||
|
||||
err = s.dal.QuizRepo.DeleteQuizAudience(ctx.Context(), quizID)
|
||||
err = s.dal.QuizRepo.DeleteQuizAudience(ctx.Context(), quizID, audienceID)
|
||||
if err != nil {
|
||||
return ctx.Status(fiber.StatusInternalServerError).SendString(err.Error())
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ func (r *Quiz) Register(router fiber.Router) {
|
||||
router.Post("/template", r.TemplateCopy)
|
||||
router.Post("/:quizID/auditory", r.CreateQuizAuditory)
|
||||
router.Get("/:quizID/auditory", r.GetQuizAuditory)
|
||||
router.Delete("/:quizID/auditory", r.DeleteQuizAuditory)
|
||||
router.Delete("/:quizID/auditory/:audienceID", r.DeleteQuizAuditory)
|
||||
}
|
||||
|
||||
func (r *Quiz) Name() string {
|
||||
|
Loading…
Reference in New Issue
Block a user