/
config.go
38 lines (32 loc) · 1.06 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package application
import (
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/dynamodb"
"github.com/kataras/iris/v12"
"github.com/mrflick72/redis-explorer/src/api"
"github.com/mrflick72/redis-explorer/src/internal/connections"
"github.com/patrickmn/go-cache"
"time"
)
func dynamoDbClient() *dynamodb.DynamoDB {
return dynamodb.New(session.Must(session.NewSessionWithOptions(session.Options{
SharedConfigState: session.SharedConfigEnable,
})))
}
func ConfigureConnectionsRepository() connections.Repository {
cache := cache.New(5*time.Minute, 10*time.Minute)
dynamoDbRepository := connections.DynamoDbRepository{
TableName: "RedisExplorerConnections",
Client: dynamoDbClient(),
}
cachedRepository := connections.InMemoryCachedRepository{
Delegate: &dynamoDbRepository,
CacheManager: cache,
Ttl: "1m",
}
return &cachedRepository
}
func ConfigureMessageEndpoints(repository connections.Repository, app *iris.Application) {
endpoints := api.ConnectionEndpoints{Repo: &repository}
endpoints.RegisterEndpoint(app)
}