add default provider

This commit is contained in:
yanghao05
2023-05-06 11:26:21 +08:00
parent 5362691ad5
commit 3a9a1a6eeb
12 changed files with 124 additions and 0 deletions

View File

@@ -29,6 +29,10 @@ type ProviderContainer struct {
type Providers []ProviderContainer
func (p Providers) With(pcs Providers) Providers {
return append(p, pcs...)
}
func (p Providers) Provide(config *viper.Viper) error {
for _, provider := range p {
provider.Options = append(provider.Options, opt.Config(config))

14
defautl_http.go Normal file
View File

@@ -0,0 +1,14 @@
package atom
import (
"github.com/rogeecn/atom/container"
"github.com/rogeecn/atom/providers/http/gin"
"github.com/rogeecn/atom/providers/log"
)
func DefaultHTTP(providers ...container.ProviderContainer) container.Providers {
return append(container.Providers{
log.DefaultProvider(),
gin.DefaultProvider(),
}, providers...)
}

View File

@@ -3,10 +3,22 @@ package captcha
import (
"log"
"time"
"github.com/rogeecn/atom/container"
"github.com/rogeecn/atom/utils/opt"
)
const DefaultPrefix = "Captcha"
func DefaultProvider() container.ProviderContainer {
return container.ProviderContainer{
Provider: Provide,
Options: []opt.Option{
opt.Prefix(DefaultPrefix),
},
}
}
type Config struct {
Long uint // 验证码长度
Width uint // 验证码宽度

View File

@@ -2,10 +2,22 @@ package mysql
import (
"fmt"
"github.com/rogeecn/atom/container"
"github.com/rogeecn/atom/utils/opt"
)
const DefaultPrefix = "MySQL"
func DefaultProvider() container.ProviderContainer {
return container.ProviderContainer{
Provider: Provide,
Options: []opt.Option{
opt.Prefix(DefaultPrefix),
},
}
}
// MySQL database config
type Config struct {
Host string

View File

@@ -2,10 +2,22 @@ package postgres
import (
"fmt"
"github.com/rogeecn/atom/container"
"github.com/rogeecn/atom/utils/opt"
)
const DefaultPrefix = "Postgres"
func DefaultProvider() container.ProviderContainer {
return container.ProviderContainer{
Provider: Provide,
Options: []opt.Option{
opt.Prefix(DefaultPrefix),
},
}
}
type Config struct {
Username string
Password string

View File

@@ -1,7 +1,21 @@
package sqlite
import (
"github.com/rogeecn/atom/container"
"github.com/rogeecn/atom/utils/opt"
)
const DefaultPrefix = "SQLite"
func DefaultProvider() container.ProviderContainer {
return container.ProviderContainer{
Provider: Provide,
Options: []opt.Option{
opt.Prefix(DefaultPrefix),
},
}
}
type Config struct {
File string
}

View File

@@ -9,6 +9,13 @@ import (
"github.com/brianvoe/gofakeit/v6"
)
func DefaultProvider() container.ProviderContainer {
return container.ProviderContainer{
Provider: Provide,
Options: []opt.Option{},
}
}
func Provide(opts ...opt.Option) error {
o := opt.New(opts...)
return container.Container.Provide(func() (*gofakeit.Faker, error) {

View File

@@ -12,6 +12,15 @@ import (
"github.com/gin-gonic/gin"
)
func DefaultProvider() container.ProviderContainer {
return container.ProviderContainer{
Provider: Provide,
Options: []opt.Option{
opt.Prefix(http.DefaultPrefix),
},
}
}
type Service struct {
conf *http.Config
Engine *gin.Engine

View File

@@ -3,11 +3,23 @@ package jwt
import (
"time"
"github.com/rogeecn/atom/container"
"github.com/rogeecn/atom/providers/http"
"github.com/rogeecn/atom/providers/log"
"github.com/rogeecn/atom/utils/opt"
)
const DefaultPrefix = "JWT"
func DefaultProvider() container.ProviderContainer {
return container.ProviderContainer{
Provider: Provide,
Options: []opt.Option{
opt.Prefix(http.DefaultPrefix),
},
}
}
type Config struct {
SigningKey string // jwt签名
ExpiresTime string // 过期时间

View File

@@ -1,7 +1,21 @@
package log
import (
"github.com/rogeecn/atom/container"
"github.com/rogeecn/atom/utils/opt"
)
const DefaultPrefix = "Log"
func DefaultProvider() container.ProviderContainer {
return container.ProviderContainer{
Provider: Provide,
Options: []opt.Option{
opt.Prefix(DefaultPrefix),
},
}
}
type Config struct {
Level Level
}

View File

@@ -6,6 +6,13 @@ import (
"golang.org/x/sync/singleflight"
)
func DefaultProvider() container.ProviderContainer {
return container.ProviderContainer{
Provider: Provide,
Options: []opt.Option{},
}
}
func Provide(opts ...opt.Option) error {
o := opt.New(opts...)
return container.Container.Provide(func() (*singleflight.Group, error) {

View File

@@ -7,6 +7,13 @@ import (
"github.com/gofrs/uuid"
)
func DefaultProvider() container.ProviderContainer {
return container.ProviderContainer{
Provider: Provide,
Options: []opt.Option{},
}
}
type Generator struct {
generator uuid.Generator
}