You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

76 lines
1.7 KiB

package app
import (
"log"
"time"
"github.com/dimaskiddo/go-whatsapp-multidevice-rest/pkg/app/database"
"github.com/dimaskiddo/go-whatsapp-multidevice-rest/pkg/app/http"
"github.com/dimaskiddo/go-whatsapp-multidevice-rest/pkg/env"
)
var (
AppWebhookURL string
AppWebhookBasicAuth string
AppDatabase *database.DatabaseContainer
AppRequest *http.HttpClient
)
func init() {
var err error
dbType, err := env.GetEnvString("WHATSAPP_DATASTORE_TYPE")
if err != nil {
log.Fatal("Error Parse Environment Variable for Application Datastore Type")
}
dbURI, err := env.GetEnvString("WHATSAPP_DATASTORE_URI")
if err != nil {
log.Fatal("Error Parse Environment Variable for Application Datastore URI")
}
// Initialize App Client Datastore
initDB(dbType, dbURI)
appWebhookUrl, err := env.GetEnvString("APP_WEBHOOK_URL_TARGET")
if err != nil {
log.Fatal("Error Parse Environment Variable for App Webhook URL Target")
}
AppWebhookURL = appWebhookUrl
appWebhookBasicAuth, err := env.GetEnvString("APP_WEBHOOK_BASIC_AUTH")
if err != nil {
AppWebhookBasicAuth = ""
}
AppWebhookBasicAuth = appWebhookBasicAuth
// Initialize App HTTP Request
initHttpRequest()
}
func initDB(dbType string, dbURI string) {
// Initialize App Client Datastore
appDb, err := database.New(dbType, dbURI)
if err != nil {
log.Fatal("Error Connect Application Datastore: ", err)
}
AppDatabase = appDb
}
func initHttpRequest() {
// Initialize App HTTP Request
headers := map[string]string{
"Content-Type": "application/json",
}
if AppWebhookBasicAuth != "" {
headers["Authorization"] = "Basic " + AppWebhookBasicAuth
}
client := http.NewHttpClient(http.HttpClientOptions{
Timeout: 30 * time.Second,
Headers: headers,
})
AppRequest = client
}