feat: update advertisement
This commit is contained in:
parent
eda627da39
commit
6bd039a542
|
|
@ -11,7 +11,7 @@ type Advertisement struct {
|
||||||
ContentFileName *string `json:"content_file_name" gorm:"type:varchar"`
|
ContentFileName *string `json:"content_file_name" gorm:"type:varchar"`
|
||||||
Placement string `json:"placement" gorm:"type:varchar"`
|
Placement string `json:"placement" gorm:"type:varchar"`
|
||||||
StatusId int `json:"status_id" gorm:"type:int4"`
|
StatusId int `json:"status_id" gorm:"type:int4"`
|
||||||
IsPublish bool `json:"is_publish" gorm:"type:bool;default:true"`
|
IsPublish bool `json:"is_publish" gorm:"type:bool"`
|
||||||
IsActive bool `json:"is_active" gorm:"type:bool;default:true"`
|
IsActive bool `json:"is_active" gorm:"type:bool;default:true"`
|
||||||
CreatedAt time.Time `json:"created_at" gorm:"default:now()"`
|
CreatedAt time.Time `json:"created_at" gorm:"default:now()"`
|
||||||
UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"`
|
UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"`
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ type AdvertisementRepository interface {
|
||||||
FindOne(id uint) (advertisement *entity.Advertisement, err error)
|
FindOne(id uint) (advertisement *entity.Advertisement, err error)
|
||||||
FindByFilename(contentFilename string) (advertisement *entity.Advertisement, err error)
|
FindByFilename(contentFilename string) (advertisement *entity.Advertisement, err error)
|
||||||
Create(advertisement *entity.Advertisement) (advertisementReturn *entity.Advertisement, err error)
|
Create(advertisement *entity.Advertisement) (advertisementReturn *entity.Advertisement, err error)
|
||||||
Update(id uint, advertisement *entity.Advertisement) (err error)
|
Update(id uint, advertisement map[string]interface{}) (err error)
|
||||||
Delete(id uint) (err error)
|
Delete(id uint) (err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -103,7 +103,7 @@ func (_i *advertisementRepository) Create(advertisement *entity.Advertisement) (
|
||||||
return advertisement, result.Error
|
return advertisement, result.Error
|
||||||
}
|
}
|
||||||
|
|
||||||
func (_i *advertisementRepository) Update(id uint, advertisement *entity.Advertisement) (err error) {
|
func (_i *advertisementRepository) Update(id uint, advertisement map[string]interface{}) (err error) {
|
||||||
return _i.DB.DB.Model(&entity.Advertisement{}).
|
return _i.DB.DB.Model(&entity.Advertisement{}).
|
||||||
Where(&entity.Advertisement{ID: id}).
|
Where(&entity.Advertisement{ID: id}).
|
||||||
Updates(advertisement).Error
|
Updates(advertisement).Error
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import (
|
||||||
config "go-humas-be/config/config"
|
config "go-humas-be/config/config"
|
||||||
minioStorage "go-humas-be/config/config"
|
minioStorage "go-humas-be/config/config"
|
||||||
"go-humas-be/utils/paginator"
|
"go-humas-be/utils/paginator"
|
||||||
|
utilSvc "go-humas-be/utils/service"
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
|
@ -154,7 +155,11 @@ func (_i *advertisementService) Upload(c *fiber.Ctx, id uint) (err error) {
|
||||||
result.ContentFileName = &newFilename
|
result.ContentFileName = &newFilename
|
||||||
result.ContentFilePath = &objectName
|
result.ContentFilePath = &objectName
|
||||||
|
|
||||||
err = _i.Repo.Update(id, result)
|
resultMaps, err := utilSvc.StructToMap(result)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err = _i.Repo.Update(id, resultMaps)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
@ -172,10 +177,21 @@ func (_i *advertisementService) Upload(c *fiber.Ctx, id uint) (err error) {
|
||||||
|
|
||||||
func (_i *advertisementService) Update(id uint, req request.AdvertisementUpdateRequest) (err error) {
|
func (_i *advertisementService) Update(id uint, req request.AdvertisementUpdateRequest) (err error) {
|
||||||
_i.Log.Info().Interface("data", req).Msg("")
|
_i.Log.Info().Interface("data", req).Msg("")
|
||||||
return _i.Repo.Update(id, req.ToEntity())
|
resultMaps, err := utilSvc.StructToMap(req.ToEntity())
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return _i.Repo.Update(id, resultMaps)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (_i *advertisementService) UpdatePublish(id uint, isPublish bool) (err error) {
|
func (_i *advertisementService) UpdatePublish(id uint, isPublish bool) (err error) {
|
||||||
|
_i.Log.Info().Str("timestamp", time.Now().
|
||||||
|
Format(time.RFC3339)).Str("Service:Resource", "UpdatePublish").
|
||||||
|
Interface("ids", id).Msg("")
|
||||||
|
_i.Log.Info().Str("timestamp", time.Now().
|
||||||
|
Format(time.RFC3339)).Str("Service:Resource", "UpdatePublish").
|
||||||
|
Interface("isPublish", isPublish).Msg("")
|
||||||
|
|
||||||
result, err := _i.Repo.FindOne(id)
|
result, err := _i.Repo.FindOne(id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
@ -183,7 +199,15 @@ func (_i *advertisementService) UpdatePublish(id uint, isPublish bool) (err erro
|
||||||
|
|
||||||
result.IsPublish = isPublish
|
result.IsPublish = isPublish
|
||||||
|
|
||||||
return _i.Repo.Update(id, result)
|
_i.Log.Info().Str("timestamp", time.Now().
|
||||||
|
Format(time.RFC3339)).Str("Service:Resource", "UpdatePublish").
|
||||||
|
Interface("result", result).Msg("")
|
||||||
|
|
||||||
|
resultMaps, err := utilSvc.StructToMap(result)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return _i.Repo.Update(id, resultMaps)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (_i *advertisementService) Delete(id uint) error {
|
func (_i *advertisementService) Delete(id uint) error {
|
||||||
|
|
@ -193,7 +217,12 @@ func (_i *advertisementService) Delete(id uint) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
result.IsActive = false
|
result.IsActive = false
|
||||||
return _i.Repo.Update(id, result)
|
|
||||||
|
resultMaps, err := utilSvc.StructToMap(result)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return _i.Repo.Update(id, resultMaps)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (_i *advertisementService) Viewer(c *fiber.Ctx) (err error) {
|
func (_i *advertisementService) Viewer(c *fiber.Ctx) (err error) {
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
|
"encoding/json"
|
||||||
"math/big"
|
"math/big"
|
||||||
"strings"
|
"strings"
|
||||||
"unicode"
|
"unicode"
|
||||||
|
|
@ -46,3 +47,18 @@ func GenerateNumericCode(codeLength int) (string, error) {
|
||||||
|
|
||||||
return string(result), nil
|
return string(result), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func StructToMap(obj interface{}) (map[string]interface{}, error) {
|
||||||
|
var result map[string]interface{}
|
||||||
|
jsonData, err := json.Marshal(obj)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = json.Unmarshal(jsonData, &result)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue