elm-format

pull/1/head
Bram van den Heuvel 2023-02-17 11:10:03 +01:00
parent eaa7bc3444
commit 045b67d77d
3 changed files with 30 additions and 26 deletions

View File

@ -1,4 +1,4 @@
module Internal.Api.SendMessageEvent.Api exposing (sendMessageEventV1, sendMessageEventV2, SendMessageEventOutputV1, SendMessageEventInputV1)
module Internal.Api.SendMessageEvent.Api exposing (SendMessageEventInputV1, SendMessageEventOutputV1, sendMessageEventV1, sendMessageEventV2)
import Internal.Api.Request as R
import Internal.Api.SendMessageEvent.V1.SpecObjects as SO1
@ -16,7 +16,9 @@ type alias SendMessageEventInputV1 =
, transactionId : String
}
type alias SendMessageEventOutputV1 = Task X.Error SO1.EventResponse
type alias SendMessageEventOutputV1 =
Task X.Error SO1.EventResponse
sendMessageEventV1 : SendMessageEventInputV1 -> SendMessageEventOutputV1

View File

@ -3,31 +3,32 @@ module Internal.Api.SendMessageEvent.Main exposing (..)
import Internal.Api.SendMessageEvent.Api as Api
import Internal.Tools.VersionControl as VC
sendMessageEvent : List String -> Maybe (SendMessageEventInput -> SendMessageEventOutput)
sendMessageEvent versions =
VC.withBottomLayer
{ current = Api.sendMessageEventV1
, version = "r0.0.0"
}
|> VC.sameForVersion "r0.0.1"
|> VC.sameForVersion "r0.1.0"
|> VC.sameForVersion "r0.2.0"
|> VC.sameForVersion "r0.3.0"
|> VC.sameForVersion "r0.4.0"
|> VC.sameForVersion "r0.5.0"
|> VC.sameForVersion "r0.6.0"
|> VC.sameForVersion "r0.6.1"
|> VC.addMiddleLayer
{ downcast = identity
, current = Api.sendMessageEventV2
, upcast = identity
, version = "v1.1"
}
|> VC.sameForVersion "v1.2"
|> VC.sameForVersion "v1.3"
|> VC.sameForVersion "v1.4"
|> VC.sameForVersion "v1.5"
|> VC.mostRecentFromVersionList versions
|> VC.sameForVersion "r0.0.1"
|> VC.sameForVersion "r0.1.0"
|> VC.sameForVersion "r0.2.0"
|> VC.sameForVersion "r0.3.0"
|> VC.sameForVersion "r0.4.0"
|> VC.sameForVersion "r0.5.0"
|> VC.sameForVersion "r0.6.0"
|> VC.sameForVersion "r0.6.1"
|> VC.addMiddleLayer
{ downcast = identity
, current = Api.sendMessageEventV2
, upcast = identity
, version = "v1.1"
}
|> VC.sameForVersion "v1.2"
|> VC.sameForVersion "v1.3"
|> VC.sameForVersion "v1.4"
|> VC.sameForVersion "v1.5"
|> VC.mostRecentFromVersionList versions
type alias SendMessageEventInput =

View File

@ -92,10 +92,10 @@ type alias MiddleLayer cin cout din dout =
{-| The VersionControl layer is the layer that keeps track of all potential versions.
-}
type VersionControl cin cout
= VersionControl
= VersionControl
{ latestVersion : cin -> cout
, order : List String
, versions : Dict String (cin -> cout)
, versions : Dict String (cin -> cout)
}
@ -154,6 +154,7 @@ mostRecentFromVersionList versionList ((VersionControl { order }) as vc) =
|> List.filterMap (\v -> fromVersion v vc)
|> List.head
{-| Sometimes, no changes are needed and a function works just the same as the one in the previous version.
In that case, you can amend with a `sameForVersion` function to indicate that the spec is
identical for this version.
@ -161,9 +162,9 @@ identical for this version.
sameForVersion : String -> VersionControl a b -> VersionControl a b
sameForVersion version (VersionControl data) =
VersionControl
{ data
| order = version :: data.order
, versions = Dict.insert version data.latestVersion data.versions
{ data
| order = version :: data.order
, versions = Dict.insert version data.latestVersion data.versions
}