You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
1.6 KiB
112 lines
1.6 KiB
package controllers |
|
|
|
import ( |
|
"go-crud/initializers" |
|
"go-crud/models" |
|
"time" |
|
|
|
"github.com/gin-gonic/gin" |
|
) |
|
|
|
func NewsCreate(c *gin.Context) { |
|
// Get data |
|
var body struct { |
|
Title string |
|
Content string |
|
Author string |
|
CreatedBy string |
|
} |
|
|
|
c.Bind(&body) |
|
|
|
// Create a news |
|
now := time.Now() |
|
news := models.News{ |
|
Title: body.Title, |
|
Content: body.Content, |
|
Author: body.Author, |
|
CreatedBy: body.CreatedBy, |
|
CreatedAt: now, |
|
Date: now, |
|
} |
|
|
|
result := initializers.DB.Create(&news) |
|
|
|
if result.Error != nil { |
|
c.Status(400) |
|
return |
|
} |
|
|
|
// Return |
|
c.JSON(200, gin.H{ |
|
"news": news, |
|
}) |
|
} |
|
|
|
func NewsIndex(c *gin.Context) { |
|
// Get news |
|
var news []models.News |
|
initializers.DB.Find(&news) |
|
|
|
// Response |
|
c.JSON(200, gin.H{ |
|
"news": news, |
|
}) |
|
} |
|
|
|
func NewsShow(c *gin.Context) { |
|
// Get id |
|
id := c.Param("id") |
|
|
|
// Get the news |
|
var news models.News |
|
initializers.DB.First(&news, id) |
|
|
|
// Response |
|
c.JSON(200, gin.H{ |
|
"news": news, |
|
}) |
|
} |
|
|
|
func NewsUpdate(c *gin.Context) { |
|
// Get id |
|
id := c.Param("id") |
|
|
|
// Get data |
|
var body struct { |
|
Title string |
|
Content string |
|
Author string |
|
CreatedBy string |
|
} |
|
|
|
c.Bind(&body) |
|
|
|
// find |
|
var news models.News |
|
initializers.DB.First(&news, id) |
|
|
|
//Update |
|
initializers.DB.Model(&news).Updates(models.News{ |
|
Title: body.Title, |
|
Content: body.Content, |
|
Author: body.Author, |
|
CreatedBy: body.CreatedBy, |
|
}) |
|
|
|
// Response |
|
c.JSON(200, gin.H{ |
|
"news": news, |
|
}) |
|
} |
|
|
|
func NewsDelete(c *gin.Context) { |
|
// Get id |
|
id := c.Param("id") |
|
|
|
// Delete |
|
initializers.DB.Delete(&models.News{}, id) |
|
|
|
// Response |
|
c.Status(200) |
|
}
|
|
|