app-cloudep-tweeting-service/internal/svc/service_context.go

32 lines
685 B
Go
Raw Normal View History

2024-08-28 09:09:01 +00:00
package svc
2024-08-29 01:08:15 +00:00
import (
"app-cloudep-tweeting-service/internal/config"
model "app-cloudep-tweeting-service/internal/model/mongo"
vi "code.30cm.net/digimon/library-go/validator"
"fmt"
)
2024-08-28 09:09:01 +00:00
type ServiceContext struct {
2024-08-29 01:08:15 +00:00
Config config.Config
Validate vi.Validate
PostModel model.PostModel
2024-08-28 09:09:01 +00:00
}
func NewServiceContext(c config.Config) *ServiceContext {
2024-08-29 01:08:15 +00:00
baseMongo := MustMongoConnectUrl(c)
2024-08-28 09:09:01 +00:00
return &ServiceContext{
2024-08-29 01:08:15 +00:00
Config: c,
Validate: vi.MustValidator(),
PostModel: model.NewPostModel(baseMongo, c.Mongo.Database, "post", c.Cache),
2024-08-28 09:09:01 +00:00
}
}
2024-08-29 01:08:15 +00:00
func MustMongoConnectUrl(c config.Config) string {
return fmt.Sprintf(
"%s://%s:%s", c.Mongo.Schema,
c.Mongo.Host, c.Mongo.Port)
}