diff --git a/adapters/secondary/gateways/models/post.go b/adapters/secondary/gateways/models/post.go index 497afda..bae835c 100644 --- a/adapters/secondary/gateways/models/post.go +++ b/adapters/secondary/gateways/models/post.go @@ -11,6 +11,7 @@ type Post struct { Title string Body string Images []*Image `gorm:"many2many:post_images;"` + IsOnline bool `gorm:"not_null;default:false"` CreatedAt time.Time `gorm:"autoCreateTime"` UpdatedAt time.Time `gorm:"autoUpdateTime"` } diff --git a/adapters/secondary/gateways/postRepository.go b/adapters/secondary/gateways/postRepository.go index 068d1e3..140af3b 100644 --- a/adapters/secondary/gateways/postRepository.go +++ b/adapters/secondary/gateways/postRepository.go @@ -16,7 +16,7 @@ func NewPostRepository(db *gorm.DB) *PostRepository { } func mapPostToDomain(post entity.Post) domain.Post { - return domain.FromDb(post.ID, post.Title, post.Body, post.Images, post.CreatedAt, post.UpdatedAt) + return domain.FromDb(post.ID, post.Title, post.Body, post.Images, post.IsOnline, post.CreatedAt, post.UpdatedAt) } func (a *PostRepository) Get(id uint32) (domain.Post, error) { @@ -87,6 +87,7 @@ func (a *PostRepository) UpdateBody(id uint32, body string) (domain.Post, error) localPost.Title, localPost.Body, localPost.Images, + localPost.IsOnline, localPost.CreatedAt, localPost.UpdatedAt, ) @@ -94,6 +95,22 @@ func (a *PostRepository) UpdateBody(id uint32, body string) (domain.Post, error) return newPost, nil } +func (a *PostRepository) UpdateIsOnline(id uint32, isOnline bool) (domain.Post, error) { + var localPost entity.Post + err := a.db.Model(&entity.Post{}).First(&localPost, id).Error + if err != nil { + return domain.Post{}, err + } + + localPost.IsOnline = isOnline + err = a.db.Save(&localPost).Error + if err != nil { + return domain.Post{}, err + } + + return mapPostToDomain(localPost), nil +} + func (a *PostRepository) Delete(id uint32) error { return a.db.Delete(&entity.Post{}, id).Error } diff --git a/adapters/secondary/gateways/web/templates/componentNavbar.html b/adapters/secondary/gateways/web/templates/componentNavbar.html index 5437d97..0d4d09d 100644 --- a/adapters/secondary/gateways/web/templates/componentNavbar.html +++ b/adapters/secondary/gateways/web/templates/componentNavbar.html @@ -23,6 +23,9 @@