tsk-51: Send message endpoint (#52)
Closes #51 Reviewed-on: phoenix/textsender-api#52 Co-authored-by: phoenix <kundeng00@pm.me> Co-committed-by: phoenix <kundeng00@pm.me>
This commit is contained in:
+39
-10
@@ -3,10 +3,10 @@ package config
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"strconv"
|
||||
|
||||
"git.kundeng.us/phoenix/textsender-models/tx0/config"
|
||||
"github.com/joho/godotenv"
|
||||
|
||||
"git.kundeng.us/phoenix/textsender-api/internal/version"
|
||||
@@ -17,6 +17,7 @@ type Config struct {
|
||||
ServerPort string
|
||||
ResetDB bool
|
||||
JWTSecret string `env:"JWT_SECRET" required:"true"`
|
||||
TwilioConfig *config.TwiloConfig
|
||||
}
|
||||
|
||||
type ConnectionInfo struct {
|
||||
@@ -46,7 +47,7 @@ func PrintName() {
|
||||
fmt.Println(version.String())
|
||||
}
|
||||
|
||||
func Load() *Config {
|
||||
func Load() (*Config, *config.TwiloConfig, error) {
|
||||
versionFlag := flag.Bool("version", false, "Print version information")
|
||||
resetDb := flag.Bool("reset-db", false, "Reset the database schema and exit")
|
||||
port := flag.String("port", PORT, "Server port")
|
||||
@@ -57,19 +58,22 @@ func Load() *Config {
|
||||
os.Exit(-1)
|
||||
}
|
||||
|
||||
err := godotenv.Load()
|
||||
if err != nil {
|
||||
log.Fatal("Error loading .env file")
|
||||
if err := godotenv.Load(); err != nil {
|
||||
return nil, nil, fmt.Errorf("Error loading .env file")
|
||||
}
|
||||
|
||||
unpackedConnString := UnpackDBConnString()
|
||||
dbConnString := unpackedConnString.Parse()
|
||||
|
||||
return &Config{
|
||||
DBConnString: dbConnString,
|
||||
ServerPort: *port,
|
||||
ResetDB: *resetDb,
|
||||
JWTSecret: os.Getenv("JWT_SECRET"),
|
||||
if cfg, err := TwilioConfig(); err != nil {
|
||||
return nil, nil, err
|
||||
} else {
|
||||
return &Config{
|
||||
DBConnString: dbConnString,
|
||||
ServerPort: *port,
|
||||
ResetDB: *resetDb,
|
||||
JWTSecret: os.Getenv("JWT_SECRET"),
|
||||
}, cfg, nil
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,6 +128,31 @@ func UnpackDBConnString() (connInfo ConnectionInfo) {
|
||||
return
|
||||
}
|
||||
|
||||
func TwilioConfig() (*config.TwiloConfig, error) {
|
||||
authSid := os.Getenv("TWILIO_AUTH_SID")
|
||||
serviceSid := os.Getenv("TWILIO_SERVICE_SID")
|
||||
authToken := os.Getenv("TWILIO_AUTH_TOKEN")
|
||||
phoneNumber := os.Getenv("TWILIO_PHONE_NUMBER")
|
||||
|
||||
if len(authSid) == 0 {
|
||||
return nil, fmt.Errorf("Twilio config account sid not found")
|
||||
} else if len(serviceSid) == 0 {
|
||||
return nil, fmt.Errorf("Twilio config service sid not found")
|
||||
} else if len(authToken) == 0 {
|
||||
return nil, fmt.Errorf("Twilio config auth token not found")
|
||||
} else if len(phoneNumber) == 0 {
|
||||
return nil, fmt.Errorf("Twilio config phone number not found")
|
||||
} else {
|
||||
var cfg config.TwiloConfig
|
||||
cfg.AccountSID = authSid
|
||||
cfg.ServiceSID = serviceSid
|
||||
cfg.AuthToken = authToken
|
||||
cfg.Number = phoneNumber
|
||||
|
||||
return &cfg, nil
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Config) GetDBConnString() string {
|
||||
return c.DBConnString
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user