elm-matrix-sdk-alpha/src/Internal/Api/JoinRoomById/Main.elm

46 lines
1.4 KiB
Elm

module Internal.Api.JoinRoomById.Main exposing (..)
import Internal.Api.JoinRoomById.Api as Api
import Internal.Tools.Context as Context exposing (Context, VBA)
import Internal.Tools.Exceptions as X
import Internal.Tools.VersionControl as VC
import Task exposing (Task)
joinRoomById : Context (VBA a) -> JoinRoomByIdInput -> Task X.Error JoinRoomByIdOutput
joinRoomById context input =
VC.withBottomLayer
{ current = Api.joinRoomByIdV1
, 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 = \data -> { roomId = data.roomId }
, current = Api.joinRoomByIdV2
, upcast = identity
, version = "v1.1"
}
|> VC.sameForVersion "v1.2"
|> VC.sameForVersion "v1.3"
|> VC.sameForVersion "v1.4"
|> VC.sameForVersion "v1.5"
|> VC.mostRecentFromVersionList (Context.getVersions context)
|> Maybe.withDefault (always <| always <| Task.fail X.UnsupportedSpecVersion)
|> (|>) input
|> (|>) context
type alias JoinRoomByIdInput =
Api.JoinRoomByIdInputV2
type alias JoinRoomByIdOutput =
Api.JoinRoomByIdOutputV1