feat: create ads
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
package adsrepository
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
adsdomain "legalgo-BE-go/internal/domain/ads"
|
||||
)
|
||||
|
||||
func (a *accessor) Create(spec adsdomain.Ads) error {
|
||||
if err := a.db.Create(&spec).Error; err != nil {
|
||||
return fmt.Errorf("failed to create ads: %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package adsrepository
|
||||
|
||||
import (
|
||||
"legalgo-BE-go/database"
|
||||
adsdomain "legalgo-BE-go/internal/domain/ads"
|
||||
)
|
||||
|
||||
type accessor struct {
|
||||
db *database.DB
|
||||
}
|
||||
|
||||
type Ads interface {
|
||||
Create(adsdomain.Ads) error
|
||||
}
|
||||
|
||||
func New(
|
||||
db *database.DB,
|
||||
) Ads {
|
||||
return &accessor{db}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package repository
|
||||
|
||||
import (
|
||||
adsrepository "legalgo-BE-go/internal/accessor/ads"
|
||||
categoryrepository "legalgo-BE-go/internal/accessor/category"
|
||||
newsrepository "legalgo-BE-go/internal/accessor/news"
|
||||
"legalgo-BE-go/internal/accessor/oss"
|
||||
@@ -24,4 +25,5 @@ var Module = fx.Module("repository", fx.Provide(
|
||||
categoryrepository.New,
|
||||
newsrepository.New,
|
||||
oss.New,
|
||||
adsrepository.New,
|
||||
))
|
||||
|
||||
@@ -68,3 +68,19 @@ func (r *OssRepositoryImpl) GetPublicURL(fileName string) string {
|
||||
}
|
||||
return fmt.Sprintf("%s:%s%s", r.cfg.GetPublicURL(), r.cfg.GetBucketName(), fileName)
|
||||
}
|
||||
|
||||
func (r *OssRepositoryImpl) DeleteObject(ctx context.Context, fileName string) error {
|
||||
if fileName == "" {
|
||||
return fmt.Errorf("file name is not provided")
|
||||
}
|
||||
|
||||
_, err := r.s3.DeleteObject(&s3.DeleteObjectInput{
|
||||
Key: aws.String(fileName),
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to delete object %s from bucket: %v", fileName, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -7,4 +7,5 @@ import (
|
||||
type OSSRepository interface {
|
||||
UploadFile(ctx context.Context, fileName string, fileContent []byte) (fileUrl string, err error)
|
||||
GetPublicURL(fileName string) string
|
||||
DeleteObject(ctx context.Context, fileName string) error
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user