Files
crawlab/core/models/service/service.go
2024-06-14 15:59:48 +08:00

63 lines
1.2 KiB
Go

package service
import (
"context"
"github.com/crawlab-team/crawlab/core/color"
"github.com/crawlab-team/crawlab/core/interfaces"
"github.com/crawlab-team/crawlab/db/mongo"
"go.mongodb.org/mongo-driver/bson"
mongo2 "go.mongodb.org/mongo-driver/mongo"
)
type Service struct {
env string
colorSvc interfaces.ColorService
}
func (svc *Service) DropAll() (err error) {
db := mongo.GetMongoDb("")
colNames, err := db.ListCollectionNames(context.Background(), bson.M{})
if err != nil {
if err == mongo2.ErrNoDocuments {
return nil
}
return err
}
for _, colName := range colNames {
col := db.Collection(colName)
if err := col.Drop(context.Background()); err != nil {
return err
}
}
return nil
}
func (svc *Service) GetBaseService(id interfaces.ModelId) (svc2 interfaces.ModelBaseService) {
return GetBaseService(id)
}
func NewService() (svc2 ModelService, err error) {
// service
svc := &Service{}
svc.colorSvc, err = color.NewService()
if err != nil {
return nil, err
}
return svc, nil
}
var modelSvc ModelService
func GetService() (svc ModelService, err error) {
if modelSvc != nil {
return modelSvc, nil
}
modelSvc, err = NewService()
if err != nil {
return nil, err
}
return modelSvc, nil
}