Mhamdans17 commited on
Commit ·
f6ca5a8
1
Parent(s): 11c1b6f
feat: rebrand backend and config from WarungPOS to XOGM Go
Browse files- README.md +1 -1
- config/config.go +1 -1
- controllers/auth_controller.go +3 -3
- main.go +3 -3
- services/whatsapp.go +4 -4
README.md
CHANGED
|
@@ -7,5 +7,5 @@ sdk: docker
|
|
| 7 |
pinned: false
|
| 8 |
---
|
| 9 |
|
| 10 |
-
#
|
| 11 |
POS Backend rewritten in Go, deployed to Hugging Face Spaces.
|
|
|
|
| 7 |
pinned: false
|
| 8 |
---
|
| 9 |
|
| 10 |
+
# XOGM Go Backend
|
| 11 |
POS Backend rewritten in Go, deployed to Hugging Face Spaces.
|
config/config.go
CHANGED
|
@@ -46,7 +46,7 @@ func LoadConfig() {
|
|
| 46 |
JWTSecretKey: getEnv("JWT_SECRET_KEY", "default-secret-key-change-me"),
|
| 47 |
JWTExpiryHours: getEnvInt("JWT_EXPIRY_HOURS", 24),
|
| 48 |
FonnteToken: getEnv("FONNTE_TOKEN", ""),
|
| 49 |
-
StoreName: getEnv("STORE_NAME", "
|
| 50 |
CloudinaryCloudName: getEnv("CLOUDINARY_CLOUD_NAME", ""),
|
| 51 |
CloudinaryAPIKey: getEnv("CLOUDINARY_API_KEY", ""),
|
| 52 |
CloudinaryAPISecret: getEnv("CLOUDINARY_API_SECRET", ""),
|
|
|
|
| 46 |
JWTSecretKey: getEnv("JWT_SECRET_KEY", "default-secret-key-change-me"),
|
| 47 |
JWTExpiryHours: getEnvInt("JWT_EXPIRY_HOURS", 24),
|
| 48 |
FonnteToken: getEnv("FONNTE_TOKEN", ""),
|
| 49 |
+
StoreName: getEnv("STORE_NAME", "XOGM Go"),
|
| 50 |
CloudinaryCloudName: getEnv("CLOUDINARY_CLOUD_NAME", ""),
|
| 51 |
CloudinaryAPIKey: getEnv("CLOUDINARY_API_KEY", ""),
|
| 52 |
CloudinaryAPISecret: getEnv("CLOUDINARY_API_SECRET", ""),
|
controllers/auth_controller.go
CHANGED
|
@@ -20,12 +20,12 @@ import (
|
|
| 20 |
// SeedDefaultAdmin inisialisasi default super admin jika belum ada
|
| 21 |
func SeedDefaultAdmin() {
|
| 22 |
var count int64
|
| 23 |
-
config.DB.Model(&models.User{}).Where("email = ?", "admin@
|
| 24 |
if count == 0 {
|
| 25 |
hashedPassword, _ := middleware.HashPassword("admin123")
|
| 26 |
admin := models.User{
|
| 27 |
-
Name: "Admin
|
| 28 |
-
Email: "admin@
|
| 29 |
Password: hashedPassword,
|
| 30 |
Role: "super_admin",
|
| 31 |
CompanyID: nil,
|
|
|
|
| 20 |
// SeedDefaultAdmin inisialisasi default super admin jika belum ada
|
| 21 |
func SeedDefaultAdmin() {
|
| 22 |
var count int64
|
| 23 |
+
config.DB.Model(&models.User{}).Where("email = ?", "admin@xogmgo.com").Count(&count)
|
| 24 |
if count == 0 {
|
| 25 |
hashedPassword, _ := middleware.HashPassword("admin123")
|
| 26 |
admin := models.User{
|
| 27 |
+
Name: "Admin XOGM Go",
|
| 28 |
+
Email: "admin@xogmgo.com",
|
| 29 |
Password: hashedPassword,
|
| 30 |
Role: "super_admin",
|
| 31 |
CompanyID: nil,
|
main.go
CHANGED
|
@@ -13,7 +13,7 @@ import (
|
|
| 13 |
)
|
| 14 |
|
| 15 |
func main() {
|
| 16 |
-
log.Println("Starting
|
| 17 |
|
| 18 |
// 1. Muat Config
|
| 19 |
config.LoadConfig()
|
|
@@ -55,7 +55,7 @@ func main() {
|
|
| 55 |
// Health Checks & Health check root
|
| 56 |
r.GET("/", func(c *gin.Context) {
|
| 57 |
c.JSON(http.StatusOK, gin.H{
|
| 58 |
-
"service": "
|
| 59 |
"version": "1.0.0",
|
| 60 |
"status": "running",
|
| 61 |
"docs": "/docs",
|
|
@@ -205,7 +205,7 @@ func main() {
|
|
| 205 |
serverPort = "8003"
|
| 206 |
}
|
| 207 |
|
| 208 |
-
log.Printf("
|
| 209 |
if err := r.Run(":" + serverPort); err != nil {
|
| 210 |
log.Fatalf("Gagal menjalankan server Gin: %v", err)
|
| 211 |
}
|
|
|
|
| 13 |
)
|
| 14 |
|
| 15 |
func main() {
|
| 16 |
+
log.Println("Starting XOGM Go Service...")
|
| 17 |
|
| 18 |
// 1. Muat Config
|
| 19 |
config.LoadConfig()
|
|
|
|
| 55 |
// Health Checks & Health check root
|
| 56 |
r.GET("/", func(c *gin.Context) {
|
| 57 |
c.JSON(http.StatusOK, gin.H{
|
| 58 |
+
"service": "XOGM Go API (Go Version)",
|
| 59 |
"version": "1.0.0",
|
| 60 |
"status": "running",
|
| 61 |
"docs": "/docs",
|
|
|
|
| 205 |
serverPort = "8003"
|
| 206 |
}
|
| 207 |
|
| 208 |
+
log.Printf("XOGM Go Server berjalan di port: %s", serverPort)
|
| 209 |
if err := r.Run(":" + serverPort); err != nil {
|
| 210 |
log.Fatalf("Gagal menjalankan server Gin: %v", err)
|
| 211 |
}
|
services/whatsapp.go
CHANGED
|
@@ -81,7 +81,7 @@ func SendPaymentNotification(
|
|
| 81 |
baseStore = config.GlobalConfig.StoreName
|
| 82 |
}
|
| 83 |
if baseStore == "" {
|
| 84 |
-
baseStore = "
|
| 85 |
}
|
| 86 |
|
| 87 |
displayName := baseStore
|
|
@@ -138,7 +138,7 @@ func SendOtpWa(phone string, otpCode string) bool {
|
|
| 138 |
formattedPhone := formatPhone(phone)
|
| 139 |
storeName := config.GlobalConfig.StoreName
|
| 140 |
if storeName == "" {
|
| 141 |
-
storeName = "
|
| 142 |
}
|
| 143 |
|
| 144 |
message := fmt.Sprintf("*%s*\n\nKode OTP Registrasi Anda adalah:\n*%s*\n\nKode ini berlaku selama 5 menit. Jangan berikan kode ini kepada siapa pun.", storeName, otpCode)
|
|
@@ -154,7 +154,7 @@ func SendResetPasswordOtpWa(phone string, otpCode string) bool {
|
|
| 154 |
formattedPhone := formatPhone(phone)
|
| 155 |
storeName := config.GlobalConfig.StoreName
|
| 156 |
if storeName == "" {
|
| 157 |
-
storeName = "
|
| 158 |
}
|
| 159 |
|
| 160 |
message := fmt.Sprintf("*%s*\n\nKode OTP Reset Password Anda adalah:\n*%s*\n\nKode ini berlaku selama 10 menit. Jangan berikan kode ini kepada siapa pun.", storeName, otpCode)
|
|
@@ -168,7 +168,7 @@ func SendApprovalWa(phone string, storeName string, email string) bool {
|
|
| 168 |
}
|
| 169 |
|
| 170 |
formattedPhone := formatPhone(phone)
|
| 171 |
-
message := fmt.Sprintf("✅ *SELAMAT! AKUN ANDA TELAH DISETUJUI*\n\nPerusahaan/Toko *%s* sudah diaktifkan!\nAnda dapat mencoba login ke Dashboard Kasir sekarang menggunakan email:\n_%s_\n\nSukses Selalu,\nTim Pengelola
|
| 172 |
|
| 173 |
return postFonnte(formattedPhone, message)
|
| 174 |
}
|
|
|
|
| 81 |
baseStore = config.GlobalConfig.StoreName
|
| 82 |
}
|
| 83 |
if baseStore == "" {
|
| 84 |
+
baseStore = "XOGM Go"
|
| 85 |
}
|
| 86 |
|
| 87 |
displayName := baseStore
|
|
|
|
| 138 |
formattedPhone := formatPhone(phone)
|
| 139 |
storeName := config.GlobalConfig.StoreName
|
| 140 |
if storeName == "" {
|
| 141 |
+
storeName = "XOGM Go"
|
| 142 |
}
|
| 143 |
|
| 144 |
message := fmt.Sprintf("*%s*\n\nKode OTP Registrasi Anda adalah:\n*%s*\n\nKode ini berlaku selama 5 menit. Jangan berikan kode ini kepada siapa pun.", storeName, otpCode)
|
|
|
|
| 154 |
formattedPhone := formatPhone(phone)
|
| 155 |
storeName := config.GlobalConfig.StoreName
|
| 156 |
if storeName == "" {
|
| 157 |
+
storeName = "XOGM Go"
|
| 158 |
}
|
| 159 |
|
| 160 |
message := fmt.Sprintf("*%s*\n\nKode OTP Reset Password Anda adalah:\n*%s*\n\nKode ini berlaku selama 10 menit. Jangan berikan kode ini kepada siapa pun.", storeName, otpCode)
|
|
|
|
| 168 |
}
|
| 169 |
|
| 170 |
formattedPhone := formatPhone(phone)
|
| 171 |
+
message := fmt.Sprintf("✅ *SELAMAT! AKUN ANDA TELAH DISETUJUI*\n\nPerusahaan/Toko *%s* sudah diaktifkan!\nAnda dapat mencoba login ke Dashboard Kasir sekarang menggunakan email:\n_%s_\n\nSukses Selalu,\nTim Pengelola XOGM Go.", storeName, email)
|
| 172 |
|
| 173 |
return postFonnte(formattedPhone, message)
|
| 174 |
}
|