feat(api): docs basic curd implemention

This commit is contained in:
neo-f
2023-03-23 17:43:27 +08:00
parent 005a13d8a5
commit 28edda5c7a
19 changed files with 1304 additions and 222 deletions

View File

@@ -6,7 +6,7 @@ import (
"github.com/rs/zerolog/log"
)
var userClaimsKey = struct{}{}
var userKey = struct{}{}
func JWTRequired(c *fiber.Ctx) error {
jwt := c.Get("Authorization")
@@ -18,6 +18,6 @@ func JWTRequired(c *fiber.Ctx) error {
log.Ctx(c.UserContext()).Error().Err(err).Msg("Unauthorized user")
return fiber.ErrUnauthorized
}
c.Locals(userClaimsKey, claims)
c.Locals(userKey, claims.User)
return nil
}

View File

@@ -73,13 +73,13 @@ func registerDocs(app *soda.Soda) {
SetSummary("批量-文件删除").
AddJWTSecurity(JWTRequired).
SetJSONRequestBody(schema.DocsBatchDelete{}).
AddJSONResponse(200, schema.DocsBatchResults{}).OK()
AddJSONResponse(200, schema.DocBatchResults{}).OK()
app.Post("/docs/batch/update", nil).
AddTags("文档管理").
SetSummary("批量-文件更新").
AddJWTSecurity(JWTRequired).
SetJSONRequestBody(schema.DocsBatchUpdate{}).
AddJSONResponse(200, schema.DocsBatchResults{}).OK()
AddJSONResponse(200, schema.DocBatchResults{}).OK()
// get presigned url for tmp file upload
app.Get("/docs/upload-url", nil).
AddTags("文档管理").
@@ -90,7 +90,7 @@ func registerDocs(app *soda.Soda) {
}
func ListDocs(c *fiber.Ctx) error {
auth := c.Locals(userClaimsKey).(*casdoorsdk.Claims)
auth := c.Locals(userKey).(*casdoorsdk.User)
params := c.Locals(soda.KeyParameter).(*schema.ListDocQuery)
docs, total, err := service.ListDocs(c.UserContext(), auth, params)
if err != nil {
@@ -104,7 +104,7 @@ func ListDocs(c *fiber.Ctx) error {
}
func CreateDoc(c *fiber.Ctx) error {
auth := c.Locals(userClaimsKey).(*casdoorsdk.Claims)
auth := c.Locals(userKey).(*casdoorsdk.User)
body := c.Locals(soda.KeyRequestBody).(*schema.CreateDoc)
doc, err := service.CreateDoc(c.UserContext(), auth, body)
@@ -115,7 +115,7 @@ func CreateDoc(c *fiber.Ctx) error {
}
func UpdateDoc(c *fiber.Ctx) error {
auth := c.Locals(userClaimsKey).(*casdoorsdk.Claims)
auth := c.Locals(userKey).(*casdoorsdk.User)
params := c.Locals(soda.KeyParameter).(*schema.DocID)
body := c.Locals(soda.KeyRequestBody).(*schema.UpdateDoc)
@@ -127,7 +127,7 @@ func UpdateDoc(c *fiber.Ctx) error {
return c.JSON(doc.ToSchema(ctx))
}
func DeleteDoc(c *fiber.Ctx) error {
auth := c.Locals(userClaimsKey).(*casdoorsdk.Claims)
auth := c.Locals(userKey).(*casdoorsdk.User)
params := c.Locals(soda.KeyParameter).(*schema.DocID)
ctx := c.UserContext()
@@ -138,31 +138,25 @@ func DeleteDoc(c *fiber.Ctx) error {
}
func DeleteDocBatch(c *fiber.Ctx) error {
auth := c.Locals(userClaimsKey).(*casdoorsdk.Claims)
auth := c.Locals(userKey).(*casdoorsdk.User)
body := c.Locals(soda.KeyRequestBody).(*schema.DocsBatchDelete)
ctx := c.UserContext()
resp, err := service.DeleteDocBatch(ctx, auth, body)
if err != nil {
return err
}
resp := service.DeleteDocBatch(ctx, auth, body)
return c.JSON(resp)
}
func UpdateDocBatch(c *fiber.Ctx) error {
auth := c.Locals(userClaimsKey).(*casdoorsdk.Claims)
auth := c.Locals(userKey).(*casdoorsdk.User)
body := c.Locals(soda.KeyRequestBody).(*schema.DocsBatchUpdate)
ctx := c.UserContext()
resp, err := service.UpdateDocBatch(ctx, auth, body)
if err != nil {
return err
}
resp := service.UpdateDocBatch(ctx, auth, body)
return c.JSON(resp)
}
func CreateUploadURL(c *fiber.Ctx) error {
auth := c.Locals(userClaimsKey).(*casdoorsdk.Claims)
auth := c.Locals(userKey).(*casdoorsdk.User)
params := c.Locals(soda.KeyParameter).(*schema.CreateUploadURL)
ctx := c.UserContext()