104 lines
2.1 KiB
Go

package config
import (
"log"
"os"
"strconv"
)
// GetAIServerURI ...
func GetAIServerURI()string {
return getEnvVariable("AI_SERVER_URI")
}
// GetAIChatServerPort ...
func GetAIChatServerPort()string {
return getEnvVariable("AI_CHAT_SERVER_PORT")
}
// GetAIChatModel ...
func GetAIChatModel()string {
return getEnvVariable("AI_CHAT_MODEL")
}
// GetAIChatModelFast ...
func GetAIChatModelFast()string {
return getEnvVariable("AI_CHAT_MODEL_FAST")
}
// GetAITranscribeServerPort ...
func GetAITranscribeServerPort()string {
return getEnvVariable("AI_TRANSCRIBE_SERVER_PORT")
}
// GetAITranscribeModel ...
func GetAITranscribeModel()string{
return getEnvVariable("AI_TRANSCRIBE_MODEL")
}
// GetAIChatImageModel ...
func GetAIChatImageModel()string {
return getEnvVariable("AI_CHAT_IMAGE")
}
// GetRateLimitSec
// Get the rate limit time amount to limit user request
// for example a user can make 1 request each sec "1 req x sec"
func GetRateLimitSec()float64{
amntStr := getEnvVariable("RATE_LIMIT_SEC")
amnt, err := strconv.ParseFloat(amntStr, 64)
if err != nil{
panic(err)
}
return amnt
}
// GetRateLimitAmount
// Get the rate limit amount of request to limit
// for example an user can make 10 request each 10 secs
func GetRateLimitAmount()int64{
amntStr := getEnvVariable("RATE_LIMIT_AMOUNT")
amnt, err := strconv.ParseInt(amntStr, 10, 64)
if err != nil{
panic(err)
}
return amnt
}
// GetAdminsList
// Get admin list who dont need auth
func GetAdminsList()string {
return getEnvVariable("ADMINS")
}
// GetToken
// Get telegram auth token
func GetToken() string {
return getEnvVariable("BOT_TOKEN")
}
// GetNatsURI
// Get nats uri for server connection
func GetNatsURI() string {
return getEnvVariable("NATS_SERVICE_URL")
}
// GetUserServiceURL
// Get uri for user service control GRPC
func GetUserServiceURL() string {
return getEnvVariable("TGBUSER_SERVICE_URL")
}
// GetEnvironment
// Get the environment to debug or prod
func GetEnvironment() string {
return getEnvVariable("ENV")
}
func getEnvVariable(key string) string {
if os.Getenv(key) == "" {
log.Fatal("error getting key: ", key)
}
return os.Getenv(key)
}