mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 02:32:57 +00:00
dev day #79
This commit is contained in:
@@ -116,8 +116,22 @@ func (ac *ArticleController) CreateArticle(c *gin.Context) {
|
||||
var category models.Category
|
||||
err := ac.DB.Where("name = ?", categoryName).First(&category).Error
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
// Create new category
|
||||
category = models.Category{Name: categoryName}
|
||||
// Create new category with unique slug derived from name
|
||||
s := makeSlug(categoryName)
|
||||
if s == "" {
|
||||
s = fmt.Sprintf("category-%d", time.Now().Unix())
|
||||
}
|
||||
orig := s
|
||||
for i := 0; i < 50; i++ {
|
||||
var sc int64
|
||||
if err := ac.DB.Model(&models.Category{}).Where("slug = ?", s).Count(&sc).Error; err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Chyba při kontrole jedinečnosti URL"})
|
||||
return
|
||||
}
|
||||
if sc == 0 { break }
|
||||
s = fmt.Sprintf("%s-%d", orig, i+1)
|
||||
}
|
||||
category = models.Category{Name: categoryName, Slug: s}
|
||||
if err := ac.DB.Create(&category).Error; err != nil {
|
||||
logger.Error("CreateArticle: Error creating category '%s': %v", categoryName, err)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Nelze vytvořit kategorii"})
|
||||
|
||||
Reference in New Issue
Block a user