This commit is contained in:
Kar
2024-01-08 14:00:41 +05:30
commit dbe86acfac
31 changed files with 1793 additions and 0 deletions

5
db/db.go Normal file
View File

@@ -0,0 +1,5 @@
package db
type Databases interface {
Movies
}

6
db/mongo/const.go Normal file
View File

@@ -0,0 +1,6 @@
package mongo
const (
obdDatabase = "global"
movieCollection = "movies"
)

18
db/mongo/mongo.go Normal file
View File

@@ -0,0 +1,18 @@
package mongo
import (
"gitlab.com/arkadooti.sarkar/go-boilerplate/core/mongomanager"
"gitlab.com/arkadooti.sarkar/go-boilerplate/db"
)
var _ db.Databases = (*ServicesMongo)(nil)
type ServicesMongo struct {
Db mongomanager.MongoDB
}
func NewMongoService(mongoClient mongomanager.MongoDB) db.Databases {
return &ServicesMongo{
Db: mongoClient,
}
}

28
db/mongo/movieDetails.go Normal file
View File

@@ -0,0 +1,28 @@
package mongo
import (
"errors"
"gitlab.com/arkadooti.sarkar/go-boilerplate/core/appcontext"
"gitlab.com/arkadooti.sarkar/go-boilerplate/core/log"
"gitlab.com/arkadooti.sarkar/go-boilerplate/models"
"go.mongodb.org/mongo-driver/bson"
)
func (s *ServicesMongo) GetMovieDetails(ctx appcontext.AppContext, movieName string) (models.MovieDetails, error) {
details := models.MovieDetails{}
b := bson.M{"title": bson.M{"$regex": movieName, "$options": "i"}}
err := s.Db.ReadOne(ctx, obdDatabase, movieCollection, b, &details)
if err != nil {
log.GenericError(ctx, errors.New("GetMovieDetails DB error: "+err.Error()), log.FieldsMap{"title": movieName})
return models.MovieDetails{}, err
}
return details, nil
}
func (s *ServicesMongo) SetMovieDetails(ctx appcontext.AppContext, movieDetails models.MovieDetails) error {
_, err := s.Db.CreateOne(ctx, obdDatabase, movieCollection, movieDetails)
if err != nil {
log.GenericError(ctx, errors.New("SetMovieDetails DB error: "+err.Error()))
return err
}
return nil
}

11
db/movies.go Normal file
View File

@@ -0,0 +1,11 @@
package db
import (
"gitlab.com/arkadooti.sarkar/go-boilerplate/core/appcontext"
"gitlab.com/arkadooti.sarkar/go-boilerplate/models"
)
type Movies interface {
GetMovieDetails(ctx appcontext.AppContext, movieName string) (models.MovieDetails, error)
SetMovieDetails(ctx appcontext.AppContext, movieDetails models.MovieDetails) error
}