Skip to content

Commit

Permalink
Setting appName on APNSMessageHandler instance
Browse files Browse the repository at this point in the history
  • Loading branch information
Guilherme Souza committed Sep 29, 2017
1 parent 8efdab9 commit 7091f88
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 12 deletions.
21 changes: 12 additions & 9 deletions extensions/apns_message_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ type APNSMessageHandler struct {
keyID string
teamID string
token *token.Token
appName string
Config *viper.Viper
clients chan *apns2.Client
failuresReceived int64
Expand All @@ -79,7 +80,7 @@ type APNSMessageHandler struct {

// NewAPNSMessageHandler returns a new instance of a APNSMessageHandler
func NewAPNSMessageHandler(
authKeyPath, keyID, teamID, topic string,
authKeyPath, keyID, teamID, topic, appName string,
isProduction bool,
config *viper.Viper,
logger *log.Logger,
Expand All @@ -94,6 +95,7 @@ func NewAPNSMessageHandler(
keyID: keyID,
teamID: teamID,
Topic: topic,
appName: appName,
Config: config,
failuresReceived: 0,
feedbackReporters: feedbackReporters,
Expand Down Expand Up @@ -166,7 +168,7 @@ func (a *APNSMessageHandler) sendMessage(message interfaces.KafkaMessage) error
}
return nil
}
statsReporterHandleNotificationSent(a.StatsReporters, message.Game, "apns")
statsReporterHandleNotificationSent(a.StatsReporters, a.appName, "apns")
a.PushQueue.Push(&apns2.Notification{
Topic: a.Topic,
DeviceToken: n.DeviceToken,
Expand All @@ -179,7 +181,7 @@ func (a *APNSMessageHandler) sendMessage(message interfaces.KafkaMessage) error
a.inflightMessagesMetadataLock.Lock()

n.Metadata["timestamp"] = time.Now().Unix()
n.Metadata["game"] = message.Game
n.Metadata["game"] = a.appName
n.Metadata["platform"] = "apns"
n.Metadata["deviceToken"] = n.DeviceToken
hostname, err := os.Hostname()
Expand Down Expand Up @@ -241,14 +243,15 @@ func (a *APNSMessageHandler) handleAPNSResponse(responseWithMetadata *structs.Re
apnsResMutex.Lock()
a.responsesReceived++
apnsResMutex.Unlock()
parsedTopic := ParsedTopic{}
parsedTopic := ParsedTopic{
Game: a.appName,
Platform: "apns",
}
var err error
a.inflightMessagesMetadataLock.Lock()
if val, ok := a.InflightMessagesMetadata[responseWithMetadata.ApnsID]; ok {
responseWithMetadata.Metadata = val.(map[string]interface{})
responseWithMetadata.Timestamp = responseWithMetadata.Metadata["timestamp"].(int64)
parsedTopic.Game = responseWithMetadata.Metadata["game"].(string)
parsedTopic.Platform = responseWithMetadata.Metadata["platform"].(string)
delete(responseWithMetadata.Metadata, "timestamp")
delete(a.InflightMessagesMetadata, responseWithMetadata.ApnsID)
}
Expand All @@ -264,7 +267,7 @@ func (a *APNSMessageHandler) handleAPNSResponse(responseWithMetadata *structs.Re
apnsResMutex.Unlock()
reason := responseWithMetadata.Reason
pErr := errors.NewPushError(a.mapErrorReason(reason), reason)
statsReporterHandleNotificationFailure(a.StatsReporters, parsedTopic.Game, "apns", pErr)
statsReporterHandleNotificationFailure(a.StatsReporters, a.appName, "apns", pErr)

err = pErr
switch reason {
Expand All @@ -278,7 +281,7 @@ func (a *APNSMessageHandler) handleAPNSResponse(responseWithMetadata *structs.Re
}
handleInvalidToken(
a.InvalidTokenHandlers, responseWithMetadata.DeviceToken,
parsedTopic.Game, parsedTopic.Platform,
a.appName, "apns",
)
case apns2.ReasonBadCertificate, apns2.ReasonBadCertificateEnvironment, apns2.ReasonForbidden:
l.WithFields(log.Fields{
Expand Down Expand Up @@ -315,7 +318,7 @@ func (a *APNSMessageHandler) handleAPNSResponse(responseWithMetadata *structs.Re
apnsResMutex.Lock()
a.successesReceived++
apnsResMutex.Unlock()
statsReporterHandleNotificationSuccess(a.StatsReporters, parsedTopic.Game, "apns")
statsReporterHandleNotificationSuccess(a.StatsReporters, a.appName, "apns")
return nil
}

Expand Down
10 changes: 7 additions & 3 deletions extensions/apns_message_handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ var _ = FDescribe("APNS Message Handler", func() {
keyID := "ABC123DEFG"
teamID := "DEF123GHIJ"
topic := "com.game.test"
appName := "game"
isProduction := false
logger, hook := test.NewNullLogger()
logger.Level = logrus.DebugLevel
Expand Down Expand Up @@ -88,6 +89,7 @@ var _ = FDescribe("APNS Message Handler", func() {
keyID,
teamID,
topic,
appName,
isProduction,
config,
logger,
Expand Down Expand Up @@ -396,7 +398,7 @@ var _ = FDescribe("APNS Message Handler", func() {

handler.handleAPNSResponse(res)
handler.handleAPNSResponse(res)
Expect(mockStatsDClient.Count["apns..ack"]).To(Equal(2))
Expect(mockStatsDClient.Count["apns.game.ack"]).To(Equal(2))
})

It("should call HandleNotificationFailure upon message response received", func() {
Expand All @@ -411,8 +413,8 @@ var _ = FDescribe("APNS Message Handler", func() {
handler.handleAPNSResponse(res)
handler.handleAPNSResponse(res)

Expect(mockStatsDClient.Count["apns..failed"]).To(Equal(2))
Expect(mockStatsDClient.Count["apns..missing-device-token"]).To(Equal(2))
Expect(mockStatsDClient.Count["apns.game.failed"]).To(Equal(2))
Expect(mockStatsDClient.Count["apns.game.missing-device-token"]).To(Equal(2))
})
})

Expand All @@ -434,6 +436,7 @@ var _ = FDescribe("APNS Message Handler", func() {
keyID,
teamID,
topic,
appName,
isProduction,
config,
logger,
Expand Down Expand Up @@ -593,6 +596,7 @@ var _ = FDescribe("APNS Message Handler", func() {
keyID,
teamID,
topic,
appName,
isProduction,
config,
logger,
Expand Down
1 change: 1 addition & 0 deletions pusher/apns.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ func (a *APNSPusher) configure(queue interfaces.APNSPushQueue, db interfaces.DB,
keyID,
teamID,
topic,
k,
a.IsProduction,
a.Config,
a.Logger,
Expand Down

0 comments on commit 7091f88

Please sign in to comment.