Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WPB-5204 Removing unused code #3695

Merged
merged 9 commits into from
Nov 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/5-internal/WPB-5204
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Removed APNS_VOIP code. (APNS_VOIP is a native push notification channel which we aren't using anymore.)
3 changes: 0 additions & 3 deletions libs/gundeck-types/src/Gundeck/Types/Push/V2.hs
Original file line number Diff line number Diff line change
Expand Up @@ -178,16 +178,13 @@ newtype ApsLocKey = ApsLocKey {fromLocKey :: Text}

data ApsPreference
= ApsStdPreference
| ApsVoIPPreference
deriving (Eq, Show)

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

Expand Down
8 changes: 1 addition & 7 deletions libs/wire-api/src/Wire/API/Push/V2/Token.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
Expand All @@ -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
Expand Down
6 changes: 0 additions & 6 deletions libs/wire-api/test/golden/Test/Wire/API/Golden/Generated.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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" $
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
4 changes: 0 additions & 4 deletions libs/wire-api/test/golden/Test/Wire/API/Golden/Manual.hs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,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.UserIdList
import Test.Wire.API.Golden.Runner
Expand Down Expand Up @@ -141,9 +140,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"),
Expand Down
29 changes: 0 additions & 29 deletions libs/wire-api/test/golden/Test/Wire/API/Golden/Manual/Token.hs

This file was deleted.

This file was deleted.

This file was deleted.

6 changes: 0 additions & 6 deletions libs/wire-api/test/golden/testObject_Token_1.json

This file was deleted.

2 changes: 1 addition & 1 deletion libs/wire-api/test/unit/Test/Wire/API/MLS.hs
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,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 =
Expand Down
1 change: 0 additions & 1 deletion libs/wire-api/wire-api.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -581,7 +581,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.UserIdList
Test.Wire.API.Golden.Protobuf
Expand Down
4 changes: 1 addition & 3 deletions services/brig/docs/swagger-v3.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@
"enum": [
"GCM",
"APNS",
"APNS_SANDBOX",
"APNS_VOIP",
"APNS_VOIP_SANDBOX"
"APNS_SANDBOX"
],
"type": "string"
},
Expand Down
4 changes: 1 addition & 3 deletions services/brig/docs/swagger-v4.json
Original file line number Diff line number Diff line change
Expand Up @@ -4828,9 +4828,7 @@
"enum": [
"GCM",
"APNS",
"APNS_SANDBOX",
"APNS_VOIP",
"APNS_VOIP_SANDBOX"
"APNS_SANDBOX"
],
"type": "string"
},
Expand Down
19 changes: 5 additions & 14 deletions services/gundeck/src/Gundeck/Aws.hs
Original file line number Diff line number Diff line change
Expand Up @@ -367,17 +367,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

Expand All @@ -393,13 +388,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
Expand Down
4 changes: 0 additions & 4 deletions services/gundeck/src/Gundeck/Aws/Arn.hs
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,6 @@ arnTransportText :: Transport -> Text
arnTransportText GCM = "GCM"
arnTransportText APNS = "APNS"
arnTransportText APNSSandbox = "APNS_SANDBOX"
arnTransportText APNSVoIP = "APNS_VOIP"
arnTransportText APNSVoIPSandbox = "APNS_VOIP_SANDBOX"

-- Parsers --------------------------------------------------------------------

Expand All @@ -159,7 +157,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
4 changes: 0 additions & 4 deletions services/gundeck/src/Gundeck/Instances.hs
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,11 @@ instance Cql Transport where
toCql GCM = CqlInt 0
toCql APNS = CqlInt 1
toCql APNSSandbox = CqlInt 2
toCql APNSVoIP = CqlInt 3
toCql APNSVoIPSandbox = CqlInt 4

fromCql (CqlInt i) = case i of
0 -> pure GCM
1 -> pure APNS
2 -> pure APNSSandbox
3 -> pure APNSVoIP
4 -> pure APNSVoIPSandbox
n -> Left $ "unexpected transport: " ++ show n
fromCql _ = Left "transport: int expected"

Expand Down
23 changes: 4 additions & 19 deletions services/gundeck/src/Gundeck/Push.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 0 additions & 9 deletions services/gundeck/src/Gundeck/Push/Native/Serialise.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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"
Expand Down
5 changes: 2 additions & 3 deletions services/gundeck/test/integration/API.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 0 additions & 2 deletions services/gundeck/test/unit/Native.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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 =
Expand Down
Loading