diff --git a/changelog.d/5-internal/wpb6583-clean-up-apns-cruft-in-gundeck b/changelog.d/5-internal/wpb6583-clean-up-apns-cruft-in-gundeck new file mode 100644 index 00000000000..524f1e60a52 --- /dev/null +++ b/changelog.d/5-internal/wpb6583-clean-up-apns-cruft-in-gundeck @@ -0,0 +1 @@ +Remove support for push token transport types APNSVoIP, APNSVoIPSandbox from gundeck. \ No newline at end of file diff --git a/libs/gundeck-types/src/Gundeck/Types/Push/V2.hs b/libs/gundeck-types/src/Gundeck/Types/Push/V2.hs index 0dc12e508e8..aedfc7f0164 100644 --- a/libs/gundeck-types/src/Gundeck/Types/Push/V2.hs +++ b/libs/gundeck-types/src/Gundeck/Types/Push/V2.hs @@ -178,17 +178,14 @@ newtype ApsLocKey = ApsLocKey {fromLocKey :: Text} data ApsPreference = ApsStdPreference - | ApsVoIPPreference deriving (Eq, Show, Generic) deriving (Arbitrary) via GenericUniform ApsPreference instance ToJSON ApsPreference where - toJSON ApsVoIPPreference = "voip" toJSON ApsStdPreference = "std" instance FromJSON ApsPreference where parseJSON = withText "ApsPreference" $ \case - "voip" -> pure ApsVoIPPreference "std" -> pure ApsStdPreference x -> fail $ "Invalid preference: " ++ show x diff --git a/libs/wire-api/src/Wire/API/Push/V2/Token.hs b/libs/wire-api/src/Wire/API/Push/V2/Token.hs index 0cf7b292af4..79f282b4d0f 100644 --- a/libs/wire-api/src/Wire/API/Push/V2/Token.hs +++ b/libs/wire-api/src/Wire/API/Push/V2/Token.hs @@ -115,8 +115,6 @@ data Transport = GCM | APNS | APNSSandbox - | APNSVoIP - | APNSVoIPSandbox deriving stock (Eq, Ord, Show, Bounded, Enum, Generic) deriving (Arbitrary) via (GenericUniform Transport) deriving (A.ToJSON, A.FromJSON, S.ToSchema) via (Schema Transport) @@ -127,9 +125,7 @@ instance ToSchema Transport where mconcat [ element "GCM" GCM, element "APNS" APNS, - element "APNS_SANDBOX" APNSSandbox, - element "APNS_VOIP" APNSVoIP, - element "APNS_VOIP_SANDBOX" APNSVoIPSandbox + element "APNS_SANDBOX" APNSSandbox ] instance FromByteString Transport where @@ -138,8 +134,6 @@ instance FromByteString Transport where "GCM" -> pure GCM "APNS" -> pure APNS "APNS_SANDBOX" -> pure APNSSandbox - "APNS_VOIP" -> pure APNSVoIP - "APNS_VOIP_SANDBOX" -> pure APNSVoIPSandbox x -> fail $ "Invalid push transport: " <> show x newtype Token = Token diff --git a/libs/wire-api/test/golden/Test/Wire/API/Golden/Generated.hs b/libs/wire-api/test/golden/Test/Wire/API/Golden/Generated.hs index a6003b36d81..52cde0922bd 100644 --- a/libs/wire-api/test/golden/Test/Wire/API/Golden/Generated.hs +++ b/libs/wire-api/test/golden/Test/Wire/API/Golden/Generated.hs @@ -791,12 +791,6 @@ tests = ), ( Test.Wire.API.Golden.Generated.Push_2eToken_2eTransport_user.testObject_Push_2eToken_2eTransport_user_3, "testObject_Push_2eToken_2eTransport_user_3.json" - ), - ( Test.Wire.API.Golden.Generated.Push_2eToken_2eTransport_user.testObject_Push_2eToken_2eTransport_user_4, - "testObject_Push_2eToken_2eTransport_user_4.json" - ), - ( Test.Wire.API.Golden.Generated.Push_2eToken_2eTransport_user.testObject_Push_2eToken_2eTransport_user_5, - "testObject_Push_2eToken_2eTransport_user_5.json" ) ], testGroup "Golden: Token_user" $ diff --git a/libs/wire-api/test/golden/Test/Wire/API/Golden/Generated/Push_2eToken_2eTransport_user.hs b/libs/wire-api/test/golden/Test/Wire/API/Golden/Generated/Push_2eToken_2eTransport_user.hs index 96739ba620c..fc7c1ed7f14 100644 --- a/libs/wire-api/test/golden/Test/Wire/API/Golden/Generated/Push_2eToken_2eTransport_user.hs +++ b/libs/wire-api/test/golden/Test/Wire/API/Golden/Generated/Push_2eToken_2eTransport_user.hs @@ -17,7 +17,7 @@ module Test.Wire.API.Golden.Generated.Push_2eToken_2eTransport_user where -import Wire.API.Push.Token (Transport (APNS, APNSSandbox, APNSVoIP, APNSVoIPSandbox, GCM)) +import Wire.API.Push.Token (Transport (APNS, APNSSandbox, GCM)) import Wire.API.Push.Token qualified as Push.Token (Transport) testObject_Push_2eToken_2eTransport_user_1 :: Push.Token.Transport @@ -28,9 +28,3 @@ testObject_Push_2eToken_2eTransport_user_2 = APNS testObject_Push_2eToken_2eTransport_user_3 :: Push.Token.Transport testObject_Push_2eToken_2eTransport_user_3 = APNSSandbox - -testObject_Push_2eToken_2eTransport_user_4 :: Push.Token.Transport -testObject_Push_2eToken_2eTransport_user_4 = APNSVoIP - -testObject_Push_2eToken_2eTransport_user_5 :: Push.Token.Transport -testObject_Push_2eToken_2eTransport_user_5 = APNSVoIPSandbox diff --git a/libs/wire-api/test/golden/Test/Wire/API/Golden/Manual.hs b/libs/wire-api/test/golden/Test/Wire/API/Golden/Manual.hs index 40e7f101a28..f8f6b0f7ab6 100644 --- a/libs/wire-api/test/golden/Test/Wire/API/Golden/Manual.hs +++ b/libs/wire-api/test/golden/Test/Wire/API/Golden/Manual.hs @@ -42,7 +42,6 @@ import Test.Wire.API.Golden.Manual.QualifiedUserClientPrekeyMap import Test.Wire.API.Golden.Manual.SearchResultContact import Test.Wire.API.Golden.Manual.SubConversation import Test.Wire.API.Golden.Manual.TeamSize -import Test.Wire.API.Golden.Manual.Token import Test.Wire.API.Golden.Manual.UserClientPrekeyMap import Test.Wire.API.Golden.Manual.UserEvent import Test.Wire.API.Golden.Manual.UserIdList @@ -145,9 +144,6 @@ tests = testGroup "GroupId" $ testObjects [(testObject_GroupId_1, "testObject_GroupId_1.json")], - testGroup "PushToken" $ - testObjects - [(testObject_Token_1, "testObject_Token_1.json")], testGroup "TeamSize" $ testObjects [ (testObject_TeamSize_1, "testObject_TeamSize_1.json"), diff --git a/libs/wire-api/test/golden/Test/Wire/API/Golden/Manual/Token.hs b/libs/wire-api/test/golden/Test/Wire/API/Golden/Manual/Token.hs deleted file mode 100644 index 2fa8207ddc9..00000000000 --- a/libs/wire-api/test/golden/Test/Wire/API/Golden/Manual/Token.hs +++ /dev/null @@ -1,29 +0,0 @@ --- This file is part of the Wire Server implementation. --- --- Copyright (C) 2022 Wire Swiss GmbH --- --- This program is free software: you can redistribute it and/or modify it under --- the terms of the GNU Affero General Public License as published by the Free --- Software Foundation, either version 3 of the License, or (at your option) any --- later version. --- --- This program is distributed in the hope that it will be useful, but WITHOUT --- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS --- FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more --- details. --- --- You should have received a copy of the GNU Affero General Public License along --- with this program. If not, see . - -module Test.Wire.API.Golden.Manual.Token where - -import Data.Id -import Wire.API.Push.V2.Token - -testObject_Token_1 :: PushToken -testObject_Token_1 = - pushToken - APNSVoIPSandbox - (AppName {appNameText = "j{\110746\SOH_\1084873M"}) - (Token {tokenText = "K"}) - (ClientId {clientToWord64 = 6}) diff --git a/libs/wire-api/test/golden/testObject_Push_2eToken_2eTransport_user_4.json b/libs/wire-api/test/golden/testObject_Push_2eToken_2eTransport_user_4.json deleted file mode 100644 index d177fe0e9d7..00000000000 --- a/libs/wire-api/test/golden/testObject_Push_2eToken_2eTransport_user_4.json +++ /dev/null @@ -1 +0,0 @@ -"APNS_VOIP" diff --git a/libs/wire-api/test/golden/testObject_Push_2eToken_2eTransport_user_5.json b/libs/wire-api/test/golden/testObject_Push_2eToken_2eTransport_user_5.json deleted file mode 100644 index fd689b4ac10..00000000000 --- a/libs/wire-api/test/golden/testObject_Push_2eToken_2eTransport_user_5.json +++ /dev/null @@ -1 +0,0 @@ -"APNS_VOIP_SANDBOX" diff --git a/libs/wire-api/test/golden/testObject_Token_1.json b/libs/wire-api/test/golden/testObject_Token_1.json deleted file mode 100644 index 36f8ff69bd8..00000000000 --- a/libs/wire-api/test/golden/testObject_Token_1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "app": "j{𛂚\u0001_􈷉M", - "client": "6", - "token": "K", - "transport": "APNS_VOIP_SANDBOX" -} diff --git a/libs/wire-api/test/unit/Test/Wire/API/MLS.hs b/libs/wire-api/test/unit/Test/Wire/API/MLS.hs index d0ff8a27a3b..b1f51f3b259 100644 --- a/libs/wire-api/test/unit/Test/Wire/API/MLS.hs +++ b/libs/wire-api/test/unit/Test/Wire/API/MLS.hs @@ -308,7 +308,7 @@ spawn cp minput = do in snd <$> concurrently writeInput readOutput case (mout, ex) of (Just out, ExitSuccess) -> pure out - _ -> assertFailure "Failed spawning process" + _ -> assertFailure $ "Failed spawning process\n" <> show mout <> "\n" <> show ex cli :: String -> FilePath -> [String] -> CreateProcess cli store tmp args = diff --git a/libs/wire-api/wire-api.cabal b/libs/wire-api/wire-api.cabal index 81859cef566..625c8fec75e 100644 --- a/libs/wire-api/wire-api.cabal +++ b/libs/wire-api/wire-api.cabal @@ -587,7 +587,6 @@ test-suite wire-api-golden-tests Test.Wire.API.Golden.Manual.SearchResultContact Test.Wire.API.Golden.Manual.SubConversation Test.Wire.API.Golden.Manual.TeamSize - Test.Wire.API.Golden.Manual.Token Test.Wire.API.Golden.Manual.UserClientPrekeyMap Test.Wire.API.Golden.Manual.UserEvent Test.Wire.API.Golden.Manual.UserIdList diff --git a/services/brig/docs/swagger-v3.json b/services/brig/docs/swagger-v3.json index e252a739717..b844341e756 100644 --- a/services/brig/docs/swagger-v3.json +++ b/services/brig/docs/swagger-v3.json @@ -14,9 +14,7 @@ "enum": [ "GCM", "APNS", - "APNS_SANDBOX", - "APNS_VOIP", - "APNS_VOIP_SANDBOX" + "APNS_SANDBOX" ], "type": "string" }, diff --git a/services/brig/docs/swagger-v4.json b/services/brig/docs/swagger-v4.json index 937aafdefc9..7ff1394f344 100644 --- a/services/brig/docs/swagger-v4.json +++ b/services/brig/docs/swagger-v4.json @@ -4828,9 +4828,7 @@ "enum": [ "GCM", "APNS", - "APNS_SANDBOX", - "APNS_VOIP", - "APNS_VOIP_SANDBOX" + "APNS_SANDBOX" ], "type": "string" }, diff --git a/services/gundeck/src/Gundeck/Aws.hs b/services/gundeck/src/Gundeck/Aws.hs index ea5fe968866..b1636f33b7c 100644 --- a/services/gundeck/src/Gundeck/Aws.hs +++ b/services/gundeck/src/Gundeck/Aws.hs @@ -369,17 +369,12 @@ newtype Attributes = Attributes -- Note [VoIP TTLs] -- ~~~~~~~~~~~~~~~~ --- The TTL message attributes for APNS_VOIP and APNS_VOIP_SANDBOX are not --- documented but appear to work. The reason might be that TTLs were --- introduced before support for VoIP notifications. There is a catch, --- however. For GCM, APNS and APNS_SANDBOX, SNS treats the TTL "0" +-- For GCM, APNS and APNS_SANDBOX, SNS treats the TTL "0" -- specially, i.e. it forwards it to the provider where it has a special --- meaning. That does not appear to be the case for APNS_VOIP and --- APNS_VOIP_SANDBOX, for which the TTL is interpreted normally, which means --- if the TTL is lower than the "dwell time" in SNS, the notification is --- never sent to the provider. So we must specify a reasonably large TTL --- for transient VoIP notifications, so that they are not discarded --- already by SNS. +-- meaning. Which means if the TTL is lower than the "dwell time" in SNS, +-- the notification is never sent to the provider. So we must specify a +-- reasonably large TTL for transient VoIP notifications, so that they are +-- not discarded already by SNS. -- -- cf. http://docs.aws.amazon.com/sns/latest/dg/sns-ttl.html @@ -395,13 +390,9 @@ timeToLive t s = Attributes (Endo (ttlAttr s)) ttlNow GCM = "0" ttlNow APNS = "0" ttlNow APNSSandbox = "0" - ttlNow APNSVoIP = "15" -- See note [VoIP TTLs] - ttlNow APNSVoIPSandbox = "15" -- See note [VoIP TTLs] ttlKey GCM = "AWS.SNS.MOBILE.GCM.TTL" ttlKey APNS = "AWS.SNS.MOBILE.APNS.TTL" ttlKey APNSSandbox = "AWS.SNS.MOBILE.APNS_SANDBOX.TTL" - ttlKey APNSVoIP = "AWS.SNS.MOBILE.APNS_VOIP.TTL" - ttlKey APNSVoIPSandbox = "AWS.SNS.MOBILE.APNS_VOIP_SANDBOX.TTL" publish :: EndpointArn -> LT.Text -> Attributes -> Amazon (Either PublishError ()) publish arn txt attrs = do diff --git a/services/gundeck/src/Gundeck/Aws/Arn.hs b/services/gundeck/src/Gundeck/Aws/Arn.hs index 17588d08106..6c09b4bf362 100644 --- a/services/gundeck/src/Gundeck/Aws/Arn.hs +++ b/services/gundeck/src/Gundeck/Aws/Arn.hs @@ -135,8 +135,6 @@ arnTransportText :: Transport -> Text arnTransportText GCM = "GCM" arnTransportText APNS = "APNS" arnTransportText APNSSandbox = "APNS_SANDBOX" -arnTransportText APNSVoIP = "APNS_VOIP" -arnTransportText APNSVoIPSandbox = "APNS_VOIP_SANDBOX" -- Parsers -------------------------------------------------------------------- @@ -165,7 +163,5 @@ endpointTopicParser = do transportParser :: Parser Transport transportParser = string "GCM" $> GCM - <|> string "APNS_VOIP_SANDBOX" $> APNSVoIPSandbox - <|> string "APNS_VOIP" $> APNSVoIP <|> string "APNS_SANDBOX" $> APNSSandbox <|> string "APNS" $> APNS diff --git a/services/gundeck/src/Gundeck/Instances.hs b/services/gundeck/src/Gundeck/Instances.hs index 83ab2a692b4..8b5b334f15f 100644 --- a/services/gundeck/src/Gundeck/Instances.hs +++ b/services/gundeck/src/Gundeck/Instances.hs @@ -34,21 +34,22 @@ import Gundeck.Aws.Arn (EndpointArn) import Gundeck.Types import Imports -instance Cql Transport where +-- | We provide a instance for `Either Int Transport` so we can handle (ie., gracefully ignore +-- rather than crash on) deprecated values in cassandra. See "Gundeck.Push.Data". +instance Cql (Either Int32 Transport) where ctype = Tagged IntColumn - toCql GCM = CqlInt 0 - toCql APNS = CqlInt 1 - toCql APNSSandbox = CqlInt 2 - toCql APNSVoIP = CqlInt 3 - toCql APNSVoIPSandbox = CqlInt 4 + toCql (Right GCM) = CqlInt 0 + toCql (Right APNS) = CqlInt 1 + toCql (Right APNSSandbox) = CqlInt 2 + toCql (Left i) = CqlInt i -- (this is weird, but it's helpful for cleaning up deprecated tokens.) fromCql (CqlInt i) = case i of - 0 -> pure GCM - 1 -> pure APNS - 2 -> pure APNSSandbox - 3 -> pure APNSVoIP - 4 -> pure APNSVoIPSandbox + 0 -> pure $ Right GCM + 1 -> pure $ Right APNS + 2 -> pure $ Right APNSSandbox + 3 -> pure (Left 3) -- `APNSVoIPV1` tokens are deprecated and will be ignored + 4 -> pure (Left 4) -- `APNSVoIPSandboxV1` tokens are deprecated and will be ignored n -> Left $ "unexpected transport: " ++ show n fromCql _ = Left "transport: int expected" diff --git a/services/gundeck/src/Gundeck/Push.hs b/services/gundeck/src/Gundeck/Push.hs index 7beb3b56076..56ae375680e 100644 --- a/services/gundeck/src/Gundeck/Push.hs +++ b/services/gundeck/src/Gundeck/Push.hs @@ -374,31 +374,16 @@ nativeTargets psh rcps' alreadySent = null (psh ^. pushConnections) || a ^. addrConn `elem` psh ^. pushConnections -- Apply transport preference in case of alternative transports for the - -- same client (currently only APNS vs APNS VoIP). If no explicit - -- preference is given, the default preference depends on the priority. + -- same client. If no explicit preference is given, the default preference depends on the priority. preference as = let pref = psh ^. pushNativeAps >>= view apsPreference in filter (pick (fromMaybe defPreference pref)) as where pick pr a = case a ^. addrTransport of GCM -> True - APNS -> pr == ApsStdPreference || notAny a APNSVoIP - APNSSandbox -> pr == ApsStdPreference || notAny a APNSVoIPSandbox - APNSVoIP -> pr == ApsVoIPPreference || notAny a APNS - APNSVoIPSandbox -> pr == ApsVoIPPreference || notAny a APNSSandbox - notAny a t = - not - ( any - ( \a' -> - addrEqualClient a a' - && a ^. addrApp == a' ^. addrApp - && a' ^. addrTransport == t - ) - as - ) - defPreference = case psh ^. pushNativePriority of - LowPriority -> ApsStdPreference - HighPriority -> ApsVoIPPreference + APNS -> pr == ApsStdPreference + APNSSandbox -> pr == ApsStdPreference + defPreference = ApsStdPreference check :: Either SomeException [a] -> m [a] check (Left e) = mntgtLogErr e >> pure [] check (Right r) = pure r diff --git a/services/gundeck/src/Gundeck/Push/Data.hs b/services/gundeck/src/Gundeck/Push/Data.hs index c688f64f4db..fa495b0e1fe 100644 --- a/services/gundeck/src/Gundeck/Push/Data.hs +++ b/services/gundeck/src/Gundeck/Push/Data.hs @@ -38,26 +38,29 @@ import System.Logger.Class qualified as Log lookup :: (MonadClient m, MonadLogger m) => UserId -> Consistency -> m [Address] lookup u c = foldM mk [] =<< retry x1 (query q (params c (Identity u))) where - q :: PrepQuery R (Identity UserId) (UserId, Transport, AppName, Token, Maybe EndpointArn, ConnId, Maybe ClientId) + q :: PrepQuery R (Identity UserId) (UserId, Either Int32 Transport, AppName, Token, Maybe EndpointArn, ConnId, Maybe ClientId) q = "select usr, transport, app, ptoken, arn, connection, client from user_push where usr = ?" mk as r = maybe as (: as) <$> mkAddr r insert :: MonadClient m => UserId -> Transport -> AppName -> Token -> EndpointArn -> ConnId -> ClientId -> m () -insert u t a p e o c = retry x5 $ write q (params LocalQuorum (u, t, a, p, e, o, c)) +insert u t a p e o c = retry x5 $ write q (params LocalQuorum (u, Right t, a, p, e, o, c)) where - q :: PrepQuery W (UserId, Transport, AppName, Token, EndpointArn, ConnId, ClientId) () + q :: PrepQuery W (UserId, Either Int32 Transport, AppName, Token, EndpointArn, ConnId, ClientId) () q = "insert into user_push (usr, transport, app, ptoken, arn, connection, client) values (?, ?, ?, ?, ?, ?, ?)" updateArn :: MonadClient m => UserId -> Transport -> AppName -> Token -> EndpointArn -> m () -updateArn uid transport app token arn = retry x5 $ write q (params LocalQuorum (arn, uid, transport, app, token)) +updateArn uid transport app token arn = retry x5 $ write q (params LocalQuorum (arn, uid, Right transport, app, token)) where - q :: PrepQuery W (EndpointArn, UserId, Transport, AppName, Token) () + q :: PrepQuery W (EndpointArn, UserId, Either Int32 Transport, AppName, Token) () q = {- `IF EXISTS`, but that requires benchmarking -} "update user_push set arn = ? where usr = ? and transport = ? and app = ? and ptoken = ?" delete :: MonadClient m => UserId -> Transport -> AppName -> Token -> m () -delete u t a p = retry x5 $ write q (params LocalQuorum (u, t, a, p)) +delete u t = deleteAux u (Right t) + +deleteAux :: MonadClient m => UserId -> Either Int32 Transport -> AppName -> Token -> m () +deleteAux u t a p = retry x5 $ write q (params LocalQuorum (u, t, a, p)) where - q :: PrepQuery W (UserId, Transport, AppName, Token) () + q :: PrepQuery W (UserId, Either Int32 Transport, AppName, Token) () q = "delete from user_push where usr = ? and transport = ? and app = ? and ptoken = ?" erase :: MonadClient m => UserId -> m () @@ -68,16 +71,20 @@ erase u = retry x5 $ write q (params LocalQuorum (Identity u)) mkAddr :: (MonadClient m, MonadLogger m) => - (UserId, Transport, AppName, Token, Maybe EndpointArn, ConnId, Maybe ClientId) -> + (UserId, Either Int32 Transport, AppName, Token, Maybe EndpointArn, ConnId, Maybe ClientId) -> m (Maybe Address) -mkAddr (usr, trp, app, tok, arn, con, clt) = case (clt, arn) of - (Just c, Just a) -> pure $! Just $! Address usr a con (pushToken trp app tok c) +mkAddr (usr, trp, app, tok, arn, con, clt) = case (trp, clt, arn) of + (Right t, Just c, Just a) -> pure $! Just $! Address usr a con (pushToken t app tok c) _ -> do Log.info $ field "user" (toByteString usr) ~~ field "transport" (show trp) ~~ field "app" (appNameText app) ~~ field "token" (tokenText tok) - ~~ msg (val "Deleting legacy push token without a client or ARN.") - delete usr trp app tok + ~~ msg + ( val + "Deleting legacy push token without a client or ARN, or with deprecated \ + \APNSVoIP* transports (transport type not shown in this message)." + ) + deleteAux usr trp app tok pure Nothing diff --git a/services/gundeck/src/Gundeck/Push/Native/Serialise.hs b/services/gundeck/src/Gundeck/Push/Native/Serialise.hs index bf9e0e491cc..07f783c36d9 100644 --- a/services/gundeck/src/Gundeck/Push/Native/Serialise.hs +++ b/services/gundeck/src/Gundeck/Push/Native/Serialise.hs @@ -54,8 +54,6 @@ renderText t prio x = case t of GCM -> trim "GCM" (jsonString gcmJson) APNS -> trim "APNS" (jsonString stdApnsJson) APNSSandbox -> trim "APNS_SANDBOX" (jsonString stdApnsJson) - APNSVoIP -> trim "APNS_VOIP" (jsonString voipApnsJson) - APNSVoIPSandbox -> trim "APNS_VOIP_SANDBOX" (jsonString voipApnsJson) where gcmJson = object @@ -67,11 +65,6 @@ renderText t prio x = case t of [ "aps" .= apsDict, "data" .= x ] - voipApnsJson = - object - [ "aps" .= object [], - "data" .= x - ] -- https://developer.apple.com/documentation/usernotifications/modifying_content_in_newly_delivered_notifications -- Must contain `mutable-content: 1` and include an alert dictionary with title, subtitle, or body information. -- Since we have no useful data here, we send a default payload that gets overridden by the client @@ -94,8 +87,6 @@ maxPayloadSize :: Transport -> Int64 maxPayloadSize GCM = 4096 maxPayloadSize APNS = 4096 maxPayloadSize APNSSandbox = 4096 -maxPayloadSize APNSVoIP = 5120 -maxPayloadSize APNSVoIPSandbox = 5120 gcmPriority :: Priority -> Text gcmPriority LowPriority = "normal" diff --git a/services/gundeck/test/integration/API.hs b/services/gundeck/test/integration/API.hs index b0c3a63186f..4ef4bd327b8 100644 --- a/services/gundeck/test/integration/API.hs +++ b/services/gundeck/test/integration/API.hs @@ -838,9 +838,8 @@ testSharePushToken = do gcmTok <- Token . T.decodeUtf8 . toByteString' <$> randomId apsTok <- Token . T.decodeUtf8 . B16.encode <$> randomBytes 32 let tok1 = pushToken GCM "test" gcmTok - let tok2 = pushToken APNSVoIP "com.wire.dev.ent" apsTok - let tok3 = pushToken APNS "com.wire.int.ent" apsTok - forM_ [tok1, tok2, tok3] $ \tk -> do + let tok2 = pushToken APNS "com.wire.int.ent" apsTok + forM_ [tok1, tok2] $ \tk -> do u1 <- randomUser u2 <- randomUser c1 <- randomClientId diff --git a/services/gundeck/test/unit/Native.hs b/services/gundeck/test/unit/Native.hs index 2e525f7cf1f..500ec668ff6 100644 --- a/services/gundeck/test/unit/Native.hs +++ b/services/gundeck/test/unit/Native.hs @@ -73,8 +73,6 @@ instance FromJSON SnsNotification where [("GCM", String n)] -> parseGcm n [("APNS", String n)] -> parseApns APNS n [("APNS_SANDBOX", String n)] -> parseApns APNSSandbox n - [("APNS_VOIP", String n)] -> parseApns APNSVoIP n - [("APNS_VOIP_SANDBOX", String n)] -> parseApns APNSVoIPSandbox n _ -> mempty where parseApns t n =