authorizer/server/db/providers/dynamodb/provider.go

54 lines
1.7 KiB
Go
Raw Normal View History

2022-10-02 19:38:12 +00:00
package dynamodb
import (
"github.com/authorizerdev/authorizer/server/db/models"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/guregu/dynamo"
)
// TODO change following provider to new db provider
type provider struct {
db *dynamo.DB
}
// NewProvider returns a new SQL provider
// TODO change following provider to new db provider
func NewProvider() (*provider, error) {
config := aws.Config{
Endpoint: aws.String("http://localhost:8000"),
Region: aws.String("us-east-1"),
}
session := session.Must(session.NewSession())
db := dynamo.New(session, &config)
if err := db.CreateTable(models.Collections.User, models.User{}).Wait(); err != nil {
// fmt.Println(" User", err)
}
if err := db.CreateTable(models.Collections.Session, models.Session{}).Wait(); err != nil {
// fmt.Println("Session error", err)
}
if err := db.CreateTable(models.Collections.EmailTemplate, models.EmailTemplate{}).Wait(); err != nil {
// fmt.Println(" EmailTemplate", err)
}
if err := db.CreateTable(models.Collections.Env, models.Env{}).Wait(); err != nil {
// fmt.Println(" Env", err)
}
if err := db.CreateTable(models.Collections.OTP, models.OTP{}).Wait(); err != nil {
// fmt.Println(" OTP", err)
}
if err := db.CreateTable(models.Collections.VerificationRequest, models.VerificationRequest{}).Wait(); err != nil {
// fmt.Println(" VerificationRequest", err)
}
if err := db.CreateTable(models.Collections.Webhook, models.Webhook{}).Wait(); err != nil {
// fmt.Println(" Webhook", err)
}
if err := db.CreateTable(models.Collections.WebhookLog, models.WebhookLog{}).Wait(); err != nil {
// fmt.Println(" WebhookLog", err)
}
return &provider{
db: db,
}, nil
}