FEAT: Added Database To CMS Serbove
Build, Push and Deploy CMS / build-push-deploy (push) Successful in 2m17s
Build, Push and Deploy CMS / build-push-deploy (push) Successful in 2m17s
This commit is contained in:
+78
-8
@@ -12,30 +12,68 @@ import (
|
||||
"github.com/aws/aws-sdk-go-v2/config"
|
||||
"github.com/aws/aws-sdk-go-v2/service/mediaconvert"
|
||||
"github.com/aws/aws-sdk-go-v2/service/s3"
|
||||
_ "github.com/lib/pq"
|
||||
)
|
||||
|
||||
func main() {
|
||||
config, err := config.LoadDefaultConfig(context.TODO())
|
||||
if len(os.Args) > 1 && os.Args[1] == "migrate" {
|
||||
runMigrate()
|
||||
return
|
||||
}
|
||||
runServer()
|
||||
}
|
||||
|
||||
func runMigrate() {
|
||||
concreteDBClient := &services.DBConcrete{ConnectionString: requireDBConnectionString()}
|
||||
concreteDBClient.Migrate()
|
||||
log.Println("migrations applied successfully")
|
||||
}
|
||||
|
||||
func runServer() {
|
||||
awsConfig, err := config.LoadDefaultConfig(context.Background())
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("failed To Load S3 Config: %s", err))
|
||||
}
|
||||
|
||||
concreteS3Client := &services.S3Concrete{
|
||||
S3Client: s3.NewFromConfig(config),
|
||||
Bucket: os.Getenv("S3_BUCKET"),
|
||||
bucketName := os.Getenv("S3_BUCKET")
|
||||
if bucketName == "" {
|
||||
panic(fmt.Errorf("missing required env var: S3_BUCKET"))
|
||||
}
|
||||
|
||||
mediaConvertRole := os.Getenv("MEDIACONVERT_ROLE_ARN")
|
||||
if mediaConvertRole == "" {
|
||||
panic(fmt.Errorf("missing required env var: MEDIACONVERT_ROLE_ARN"))
|
||||
}
|
||||
|
||||
mediaConvertInputBucket := os.Getenv("MEDIACONVERT_INPUT_BUCKET")
|
||||
if mediaConvertInputBucket == "" {
|
||||
panic(fmt.Errorf("missing required env var: MEDIACONVERT_INPUT_BUCKET"))
|
||||
}
|
||||
|
||||
mediaConvertOutputBucket := os.Getenv("MEDIACONVERT_OUTPUT_BUCKET")
|
||||
if mediaConvertOutputBucket == "" {
|
||||
panic(fmt.Errorf("missing required env var: MEDIACONVERT_OUTPUT_BUCKET"))
|
||||
}
|
||||
|
||||
concreteS3Client := &services.S3Concrete{
|
||||
S3Client: s3.NewFromConfig(awsConfig),
|
||||
Bucket: bucketName,
|
||||
}
|
||||
concreteS3Client.AssertSuccessfulConnection(context.Background())
|
||||
|
||||
services.S3Client = concreteS3Client
|
||||
|
||||
services.MediaConvertClient = &services.MediaConvertConcrete{
|
||||
MediaConvertClient: mediaconvert.NewFromConfig(config),
|
||||
Role: os.Getenv("MEDIACONVERT_ROLE_ARN"),
|
||||
InputBucket: os.Getenv("MEDIACONVERT_INPUT_BUCKET"),
|
||||
OutputBucket: os.Getenv("MEDIACONVERT_OUTPUT_BUCKET"),
|
||||
MediaConvertClient: mediaconvert.NewFromConfig(awsConfig),
|
||||
Role: mediaConvertRole,
|
||||
InputBucket: mediaConvertInputBucket,
|
||||
OutputBucket: mediaConvertOutputBucket,
|
||||
}
|
||||
|
||||
concreteDBClient := &services.DBConcrete{ConnectionString: requireDBConnectionString()}
|
||||
concreteDBClient.AssertSuccessfulConnection(context.Background())
|
||||
services.DB = concreteDBClient
|
||||
|
||||
mux := http.NewServeMux()
|
||||
|
||||
mux.Handle("GET /static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
|
||||
@@ -52,3 +90,35 @@ func main() {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func requireDBConnectionString() string {
|
||||
dbHost := os.Getenv("DB_HOST")
|
||||
if dbHost == "" {
|
||||
panic(fmt.Errorf("missing required env var: DB_HOST"))
|
||||
}
|
||||
|
||||
dbPort := os.Getenv("DB_PORT")
|
||||
if dbPort == "" {
|
||||
panic(fmt.Errorf("missing required env var: DB_PORT"))
|
||||
}
|
||||
|
||||
dbUser := os.Getenv("DB_USER")
|
||||
if dbUser == "" {
|
||||
panic(fmt.Errorf("missing required env var: DB_USER"))
|
||||
}
|
||||
|
||||
dbPassword := os.Getenv("DB_PASSWORD")
|
||||
if dbPassword == "" {
|
||||
panic(fmt.Errorf("missing required env var: DB_PASSWORD"))
|
||||
}
|
||||
|
||||
dbName := os.Getenv("DB_NAME")
|
||||
if dbName == "" {
|
||||
panic(fmt.Errorf("missing required env var: DB_NAME"))
|
||||
}
|
||||
|
||||
return fmt.Sprintf(
|
||||
"host=%s port=%s user=%s password=%s dbname=%s sslmode=require",
|
||||
dbHost, dbPort, dbUser, dbPassword, dbName,
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user