mirror of
https://github.com/wgh136/nysoure.git
synced 2025-12-15 23:41:16 +00:00
Add dev update resource api.
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"log/slog"
|
||||
"nysoure/server/dao"
|
||||
"nysoure/server/middleware"
|
||||
"time"
|
||||
|
||||
"nysoure/server/search"
|
||||
|
||||
@@ -20,10 +23,40 @@ func rebuildSearchIndex(c fiber.Ctx) error {
|
||||
})
|
||||
}
|
||||
|
||||
func updateResourceReleaseDate(c fiber.Ctx) error {
|
||||
type Request struct {
|
||||
ResourceID uint `json:"resource_id"`
|
||||
ReleaseDate string `json:"release_date"`
|
||||
}
|
||||
var req Request
|
||||
if err := c.Bind().JSON(req); err != nil {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
|
||||
"error": "Invalid request body: " + err.Error(),
|
||||
})
|
||||
}
|
||||
date, err := time.Parse("2006-01-02", req.ReleaseDate)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
|
||||
"error": "Invalid date format: " + err.Error(),
|
||||
})
|
||||
}
|
||||
err = dao.UpdateResourceReleaseDate(req.ResourceID, date)
|
||||
if err != nil {
|
||||
slog.Error("Failed to update release date", "error", err)
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"error": "Failed to update release date",
|
||||
})
|
||||
}
|
||||
return c.JSON(fiber.Map{
|
||||
"message": "Release date updated successfully",
|
||||
})
|
||||
}
|
||||
|
||||
func AddDevAPI(router fiber.Router) {
|
||||
devGroup := router.Group("/dev")
|
||||
devGroup.Use(middleware.DevMiddleware())
|
||||
{
|
||||
devGroup.Post("/rebuild_search_index", rebuildSearchIndex)
|
||||
devGroup.Post("/update_resource_release_date", updateResourceReleaseDate)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -704,3 +704,14 @@ func GetResourceOwnerID(resourceID uint) (uint, error) {
|
||||
}
|
||||
return uid, nil
|
||||
}
|
||||
|
||||
func UpdateResourceReleaseDate(resourceID uint, releaseDate time.Time) error {
|
||||
result := db.Model(&model.Resource{}).Where("id = ?", resourceID).Update("release_date", releaseDate)
|
||||
if result.Error != nil {
|
||||
return result.Error
|
||||
}
|
||||
if result.RowsAffected == 0 {
|
||||
return model.NewNotFoundError("Resource not found")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ type ResourceParams struct {
|
||||
Title string `json:"title" binding:"required"`
|
||||
AlternativeTitles []string `json:"alternative_titles"`
|
||||
Links []model.Link `json:"links"`
|
||||
ReleaseDate *time.Time `json:"release_date"`
|
||||
ReleaseDate string `json:"release_date"`
|
||||
Tags []uint `json:"tags"`
|
||||
Article string `json:"article"`
|
||||
Images []uint `json:"images"`
|
||||
@@ -102,12 +102,20 @@ func CreateResource(uid uint, params *ResourceParams) (uint, error) {
|
||||
ImageID: imageID,
|
||||
}
|
||||
}
|
||||
var date *time.Time
|
||||
if params.ReleaseDate != "" {
|
||||
parsedDate, err := time.Parse("2006-01-02", params.ReleaseDate)
|
||||
if err != nil {
|
||||
return 0, model.NewRequestError("Invalid release date format, expected YYYY-MM-DD")
|
||||
}
|
||||
date = &parsedDate
|
||||
}
|
||||
r := model.Resource{
|
||||
Title: params.Title,
|
||||
AlternativeTitles: params.AlternativeTitles,
|
||||
Article: params.Article,
|
||||
Links: params.Links,
|
||||
ReleaseDate: params.ReleaseDate,
|
||||
ReleaseDate: date,
|
||||
Images: images,
|
||||
Tags: tags,
|
||||
UserID: uid,
|
||||
@@ -531,11 +539,20 @@ func UpdateResource(uid, rid uint, params *ResourceParams) error {
|
||||
}
|
||||
}
|
||||
|
||||
var date *time.Time
|
||||
if params.ReleaseDate != "" {
|
||||
parsedDate, err := time.Parse("2006-01-02", params.ReleaseDate)
|
||||
if err != nil {
|
||||
return model.NewRequestError("Invalid release date format, expected YYYY-MM-DD")
|
||||
}
|
||||
date = &parsedDate
|
||||
}
|
||||
|
||||
r.Title = params.Title
|
||||
r.AlternativeTitles = params.AlternativeTitles
|
||||
r.Article = params.Article
|
||||
r.Links = params.Links
|
||||
r.ReleaseDate = params.ReleaseDate
|
||||
r.ReleaseDate = date
|
||||
r.Gallery = gallery
|
||||
r.GalleryNsfw = nsfw
|
||||
r.Characters = characters
|
||||
|
||||
Reference in New Issue
Block a user