Skip to content

Commit

Permalink
feat(news detail & competition detail): increment views
Browse files Browse the repository at this point in the history
  • Loading branch information
yussan committed Aug 4, 2024
1 parent 36b6ef3 commit 733166e
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 2 deletions.
4 changes: 4 additions & 0 deletions handlers/competition.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,10 @@ func DetailCompetition(c echo.Context) error {
data := repositories.GetCompetitionDetail(c, params)

if len(data) > 0 {

// increment views
repositories.IncrCompetitionViews(c, decId)

return c.JSON(http.StatusOK, responsesModels.GlobalResponse{Status: 200, Message: "Success", Data: &echo.Map{"competition": data[0]}})
} else {
return c.JSON(http.StatusOK, responsesModels.GlobalResponse{Status: 204, Message: "Kompetisi tidak ditemukan"})
Expand Down
3 changes: 3 additions & 0 deletions handlers/news.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ func DetailNews(c echo.Context) error {
data := repositories.GetNewsDetail(c, params)

if len(data) > 0 {
// increment views
repositories.IncrNewsViews(c, decId)

return c.JSON(http.StatusOK, responsesModels.GlobalResponse{Status: 200, Message: "Success", Data: &echo.Map{"news": data}})
} else {
return c.JSON(http.StatusOK, responsesModels.GlobalResponse{Status: 204, Message: "Berita tidak ditemukan"})
Expand Down
1 change: 1 addition & 0 deletions models/tables/news.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ type Berita struct {
Tags string `gorm:"column:tag"`
Username string
Draft int `gorm:"column:draft"`
Views int `gorm:"column:views"`
}
11 changes: 11 additions & 0 deletions repositories/competition.go
Original file line number Diff line number Diff line change
Expand Up @@ -390,3 +390,14 @@ func GetLatestCompetitionID(c echo.Context, params ParamsGetLatestCompetitionId)

return resultData.Id
}

/**
* function to increment views of news by ud
*/
func IncrCompetitionViews(v echo.Context, competitionId int) *gorm.DB {
db := storageDb.ConnectDB()

NewsData := tableModels.Kompetisi{}

return db.Model(&NewsData).Where("kompetisi.id_kompetisi = ?", competitionId).Update("Views", gorm.Expr("views + ?", 1))
}
17 changes: 15 additions & 2 deletions repositories/news.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ func GetNewsDetail(c echo.Context, params ParamsGetListNews) []dataModels.NewsDa

query := QueryListNews(`berita.id, berita.title, berita.image, berita.content, berita.created_at, berita.updated_at, berita.author,
berita.image, berita.image_cloudinary, berita.tag,
berita.views,
user.username`, params)

query.Limit(1).Offset(0).Order("id DESC").Find(&dbData)
Expand All @@ -150,8 +151,9 @@ func GetNewsDetail(c echo.Context, params ParamsGetListNews) []dataModels.NewsDa
User: dataModels.UserModel{
Username: n.Username,
},
// Stats: stats
// IsDraft: n.IsDraft == "1"
Stats: dataModels.NewsStatsModel{
Views: n.Views,
},
}

normalizeData = append(normalizeData, newData)
Expand All @@ -160,3 +162,14 @@ func GetNewsDetail(c echo.Context, params ParamsGetListNews) []dataModels.NewsDa

return normalizeData
}

/**
* function to increment views of news by ud
*/
func IncrNewsViews(v echo.Context, newsId int) *gorm.DB {
db := storageDb.ConnectDB()

NewsData := tableModels.Berita{}

return db.Model(&NewsData).Where("berita.id = ?", newsId).Update("Views", gorm.Expr("views + ?", 1))
}

0 comments on commit 733166e

Please # to comment.