Replace Gorush with direct APNs/FCM integration
- Add direct APNs client using sideshow/apns2 for iOS push - Add direct FCM client using legacy HTTP API for Android push - Remove Gorush dependency (no external push server needed) - Update all services/handlers to use new push.Client - Update config for APNS_PRODUCTION flag 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -59,15 +59,16 @@ type EmailConfig struct {
|
||||
}
|
||||
|
||||
type PushConfig struct {
|
||||
// Gorush server URL
|
||||
// Gorush server URL (deprecated - kept for backwards compatibility)
|
||||
GorushURL string
|
||||
|
||||
// APNs (iOS)
|
||||
APNSKeyPath string
|
||||
APNSKeyID string
|
||||
APNSTeamID string
|
||||
APNSTopic string
|
||||
APNSSandbox bool
|
||||
APNSKeyPath string
|
||||
APNSKeyID string
|
||||
APNSTeamID string
|
||||
APNSTopic string
|
||||
APNSSandbox bool
|
||||
APNSProduction bool // If true, use production APNs; if false, use sandbox
|
||||
|
||||
// FCM (Android)
|
||||
FCMServerKey string
|
||||
@@ -163,13 +164,14 @@ func Load() (*Config, error) {
|
||||
UseTLS: viper.GetBool("EMAIL_USE_TLS"),
|
||||
},
|
||||
Push: PushConfig{
|
||||
GorushURL: viper.GetString("GORUSH_URL"),
|
||||
APNSKeyPath: viper.GetString("APNS_AUTH_KEY_PATH"),
|
||||
APNSKeyID: viper.GetString("APNS_AUTH_KEY_ID"),
|
||||
APNSTeamID: viper.GetString("APNS_TEAM_ID"),
|
||||
APNSTopic: viper.GetString("APNS_TOPIC"),
|
||||
APNSSandbox: viper.GetBool("APNS_USE_SANDBOX"),
|
||||
FCMServerKey: viper.GetString("FCM_SERVER_KEY"),
|
||||
GorushURL: viper.GetString("GORUSH_URL"),
|
||||
APNSKeyPath: viper.GetString("APNS_AUTH_KEY_PATH"),
|
||||
APNSKeyID: viper.GetString("APNS_AUTH_KEY_ID"),
|
||||
APNSTeamID: viper.GetString("APNS_TEAM_ID"),
|
||||
APNSTopic: viper.GetString("APNS_TOPIC"),
|
||||
APNSSandbox: viper.GetBool("APNS_USE_SANDBOX"),
|
||||
APNSProduction: viper.GetBool("APNS_PRODUCTION"),
|
||||
FCMServerKey: viper.GetString("FCM_SERVER_KEY"),
|
||||
},
|
||||
Worker: WorkerConfig{
|
||||
TaskReminderHour: viper.GetInt("TASK_REMINDER_HOUR"),
|
||||
@@ -242,6 +244,7 @@ func setDefaults() {
|
||||
viper.SetDefault("GORUSH_URL", "http://localhost:8088")
|
||||
viper.SetDefault("APNS_TOPIC", "com.example.casera")
|
||||
viper.SetDefault("APNS_USE_SANDBOX", true)
|
||||
viper.SetDefault("APNS_PRODUCTION", false)
|
||||
|
||||
// Worker defaults (all times in UTC)
|
||||
viper.SetDefault("TASK_REMINDER_HOUR", 20) // 8:00 PM UTC
|
||||
|
||||
Reference in New Issue
Block a user