lifedebugger commited on
Commit
b5d72d9
·
1 Parent(s): a5edc40

Deploy files from GitHub repository

Browse files
config/env_config.go CHANGED
@@ -5,6 +5,7 @@ import (
5
  "strconv"
6
  "strings"
7
 
 
8
  "github.com/joho/godotenv"
9
  )
10
 
@@ -40,23 +41,23 @@ func NewEnvConfig(timezone string) EnvConfig {
40
  }
41
 
42
  func (e *envConfig) GetTCPAddress() string {
43
- return os.Getenv("HOST_ADDRESS") + ":" + os.Getenv("HOST_PORT")
44
  }
45
 
46
  func (e *envConfig) GetLogPath() string {
47
- return os.Getenv("LOG_PATH")
48
  }
49
 
50
  func (e *envConfig) GetHostAddress() string {
51
- return os.Getenv("HOST_ADDRESS")
52
  }
53
 
54
  func (e *envConfig) GetHostPort() string {
55
- return os.Getenv("HOST_PORT")
56
  }
57
 
58
  func (e *envConfig) GetEmailVerificationDuration() int {
59
- duration, err := strconv.Atoi(os.Getenv("EMAIL_VERIFICATION_DURATION"))
60
  if err != nil {
61
  return 0 // Default value if parsing fails
62
  }
@@ -64,27 +65,27 @@ func (e *envConfig) GetEmailVerificationDuration() int {
64
  }
65
 
66
  func (e *envConfig) GetDatabaseHost() string {
67
- return os.Getenv("DB_HOST")
68
  }
69
 
70
  func (e *envConfig) GetDatabasePort() string {
71
- return os.Getenv("DB_PORT")
72
  }
73
 
74
  func (e *envConfig) GetDatabaseUser() string {
75
- return os.Getenv("DB_USER")
76
  }
77
 
78
  func (e *envConfig) GetDatabasePassword() string {
79
- return os.Getenv("DB_PASSWORD")
80
  }
81
 
82
  func (e *envConfig) GetDatabaseName() string {
83
- return os.Getenv("DB_NAME")
84
  }
85
 
86
  func (e *envConfig) GetSalt() string {
87
- salt := os.Getenv("SALT")
88
  if salt == "" {
89
  return "Def4u|7" // Default salt value
90
  }
@@ -92,21 +93,21 @@ func (e *envConfig) GetSalt() string {
92
  }
93
 
94
  func (e *envConfig) GetSupabaseURL() string {
95
- return strings.TrimSpace(os.Getenv("SUPABASE_URL"))
96
  }
97
 
98
  func (e *envConfig) GetSupabaseKey() string {
99
- return strings.TrimSpace(os.Getenv("SUPABASE_SERVICE_KEY"))
100
  }
101
 
102
  func (e *envConfig) GetSupabaseBucket() string {
103
- return strings.TrimSpace(os.Getenv("SUPABASE_BUCKET_NAME"))
104
  }
105
 
106
  func (e *envConfig) GetXenditAPIKey() string {
107
- return strings.TrimSpace(os.Getenv("XENDIT_API_KEY"))
108
  }
109
 
110
  func (e *envConfig) GetXenditCallbackToken() string {
111
- return strings.TrimSpace(os.Getenv("XENDIT_CALLBACK_TOKEN"))
112
  }
 
5
  "strconv"
6
  "strings"
7
 
8
+ "abdanhafidz.com/go-boilerplate/utils"
9
  "github.com/joho/godotenv"
10
  )
11
 
 
41
  }
42
 
43
  func (e *envConfig) GetTCPAddress() string {
44
+ return utils.GetEnv("HOST_ADDRESS") + ":" + utils.GetEnv("HOST_PORT")
45
  }
46
 
47
  func (e *envConfig) GetLogPath() string {
48
+ return utils.GetEnv("LOG_PATH")
49
  }
50
 
51
  func (e *envConfig) GetHostAddress() string {
52
+ return utils.GetEnv("HOST_ADDRESS")
53
  }
54
 
55
  func (e *envConfig) GetHostPort() string {
56
+ return utils.GetEnv("HOST_PORT")
57
  }
58
 
59
  func (e *envConfig) GetEmailVerificationDuration() int {
60
+ duration, err := strconv.Atoi(utils.GetEnv("EMAIL_VERIFICATION_DURATION"))
61
  if err != nil {
62
  return 0 // Default value if parsing fails
63
  }
 
65
  }
66
 
67
  func (e *envConfig) GetDatabaseHost() string {
68
+ return utils.GetEnv("DB_HOST")
69
  }
70
 
71
  func (e *envConfig) GetDatabasePort() string {
72
+ return utils.GetEnv("DB_PORT")
73
  }
74
 
75
  func (e *envConfig) GetDatabaseUser() string {
76
+ return utils.GetEnv("DB_USER")
77
  }
78
 
79
  func (e *envConfig) GetDatabasePassword() string {
80
+ return utils.GetEnv("DB_PASSWORD")
81
  }
82
 
83
  func (e *envConfig) GetDatabaseName() string {
84
+ return utils.GetEnv("DB_NAME")
85
  }
86
 
87
  func (e *envConfig) GetSalt() string {
88
+ salt := utils.GetEnv("SALT")
89
  if salt == "" {
90
  return "Def4u|7" // Default salt value
91
  }
 
93
  }
94
 
95
  func (e *envConfig) GetSupabaseURL() string {
96
+ return strings.TrimSpace(utils.GetEnv("SUPABASE_URL"))
97
  }
98
 
99
  func (e *envConfig) GetSupabaseKey() string {
100
+ return strings.TrimSpace(utils.GetEnv("SUPABASE_SERVICE_KEY"))
101
  }
102
 
103
  func (e *envConfig) GetSupabaseBucket() string {
104
+ return strings.TrimSpace(utils.GetEnv("SUPABASE_BUCKET_NAME"))
105
  }
106
 
107
  func (e *envConfig) GetXenditAPIKey() string {
108
+ return strings.TrimSpace(utils.GetEnv("XENDIT_API_KEY"))
109
  }
110
 
111
  func (e *envConfig) GetXenditCallbackToken() string {
112
+ return strings.TrimSpace(utils.GetEnv("XENDIT_CALLBACK_TOKEN"))
113
  }
provider/config_provider.go CHANGED
@@ -1,8 +1,6 @@
1
  package provider
2
 
3
  import (
4
- "fmt"
5
-
6
  "abdanhafidz.com/go-boilerplate/config"
7
  )
8
 
@@ -26,13 +24,10 @@ type configProvider struct {
26
 
27
  func NewConfigProvider() ConfigProvider {
28
  envConfig := config.NewEnvConfig("Asia / Jakarta")
29
- fmt.Println("We are here 1!")
30
  databaseConfig := config.NewDatabaseConfig(envConfig.GetDatabaseHost(), envConfig.GetDatabaseUser(), envConfig.GetDatabasePassword(), envConfig.GetDatabaseName(), envConfig.GetDatabasePort())
31
- fmt.Println("We are here 2!")
32
  uploadConfig := config.NewUploadConfig()
33
  supabaseConfig := config.NewSupabaseConfig(envConfig.GetSupabaseURL(), envConfig.GetSupabaseKey(), envConfig.GetSupabaseBucket())
34
  jWTConfig := config.NewJWTConfig(envConfig.GetSalt())
35
- fmt.Println("We are here!")
36
  xenditConfig := config.NewXenditConfig(envConfig)
37
  return &configProvider{
38
  databaseConfig: databaseConfig,
 
1
  package provider
2
 
3
  import (
 
 
4
  "abdanhafidz.com/go-boilerplate/config"
5
  )
6
 
 
24
 
25
  func NewConfigProvider() ConfigProvider {
26
  envConfig := config.NewEnvConfig("Asia / Jakarta")
 
27
  databaseConfig := config.NewDatabaseConfig(envConfig.GetDatabaseHost(), envConfig.GetDatabaseUser(), envConfig.GetDatabasePassword(), envConfig.GetDatabaseName(), envConfig.GetDatabasePort())
 
28
  uploadConfig := config.NewUploadConfig()
29
  supabaseConfig := config.NewSupabaseConfig(envConfig.GetSupabaseURL(), envConfig.GetSupabaseKey(), envConfig.GetSupabaseBucket())
30
  jWTConfig := config.NewJWTConfig(envConfig.GetSalt())
 
31
  xenditConfig := config.NewXenditConfig(envConfig)
32
  return &configProvider{
33
  databaseConfig: databaseConfig,
provider/provider.go CHANGED
@@ -78,6 +78,8 @@ func NewAppProvider() AppProvider {
78
  &entity.EventExamAnswer{},
79
  &entity.EventExamAttempt{},
80
  &entity.Result{},
 
 
81
  &entity.EventExamProctoringLogs{},
82
 
83
  // Academy LMS
 
78
  &entity.EventExamAnswer{},
79
  &entity.EventExamAttempt{},
80
  &entity.Result{},
81
+ &entity.ExamConfiguration{},
82
+ &entity.ExamProctoring{},
83
  &entity.EventExamProctoringLogs{},
84
 
85
  // Academy LMS
utils/utils.go CHANGED
@@ -1,7 +1,9 @@
1
  package utils
2
 
3
  import (
 
4
  "regexp"
 
5
  "time"
6
 
7
  http_error "abdanhafidz.com/go-boilerplate/models/error"
@@ -52,3 +54,22 @@ func ValidateCode(code string) error {
52
  }
53
  return nil
54
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  package utils
2
 
3
  import (
4
+ "os"
5
  "regexp"
6
+ "strings"
7
  "time"
8
 
9
  http_error "abdanhafidz.com/go-boilerplate/models/error"
 
54
  }
55
  return nil
56
  }
57
+
58
+ func GetEnv(key string) string {
59
+ // 1. Normal env
60
+ if val := os.Getenv(key); val != "" {
61
+ return val
62
+ }
63
+
64
+ // 2. File-based secret
65
+ if file := os.Getenv(key + "_FILE"); file != "" {
66
+ data, err := os.ReadFile(file)
67
+ if err == nil {
68
+ return strings.TrimSpace(string(data))
69
+ } else {
70
+ panic(err)
71
+ }
72
+ }
73
+
74
+ return ""
75
+ }