packages feed

battleplace 0.1.0.6 → 0.1.0.7

raw patch · 3 files changed

+136/−69 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- BattlePlace.WebApi: MatchCancelResponse_cancelled :: MatchCancelResponse
- BattlePlace.WebApi: MatchCancelResponse_notFound :: MatchCancelResponse
- BattlePlace.WebApi: MatchPlayer :: !MatchPlayerInfo -> !(Maybe Ticket) -> !(Maybe Ticket) -> MatchPlayer
- BattlePlace.WebApi: MatchServer :: !MatchServerInfo -> !Ticket -> !Ticket -> MatchServer
- BattlePlace.WebApi: MatchStatusResponse_cleaned :: MatchStatusResponse
- BattlePlace.WebApi: MatchTeam :: (Vector MatchPlayer) -> MatchTeam
- BattlePlace.WebApi: ServerMatchResponse :: !(Vector ServerSession) -> ServerMatchResponse
- BattlePlace.WebApi: ServerSession :: !SessionId -> !(InternalToken ServerSessionToken) -> !(Vector MatchTeam) -> !MatchTag -> !ServerTag -> ServerSession
- BattlePlace.WebApi: [matchPlayer_info] :: MatchPlayer -> !MatchPlayerInfo
- BattlePlace.WebApi: [matchPlayer_ourTicket] :: MatchPlayer -> !(Maybe Ticket)
- BattlePlace.WebApi: [matchPlayer_theirTicket] :: MatchPlayer -> !(Maybe Ticket)
- BattlePlace.WebApi: [matchServer_info] :: MatchServer -> !MatchServerInfo
- BattlePlace.WebApi: [matchServer_ourTicket] :: MatchServer -> !Ticket
- BattlePlace.WebApi: [matchServer_theirTicket] :: MatchServer -> !Ticket
- BattlePlace.WebApi: [matchStatusResponse_mateIndex] :: MatchStatusResponse -> {-# UNPACK #-} !Int
- BattlePlace.WebApi: [matchStatusResponse_server] :: MatchStatusResponse -> !(Maybe MatchServer)
- BattlePlace.WebApi: [matchStatusResponse_sessionId] :: MatchStatusResponse -> !SessionId
- BattlePlace.WebApi: [matchStatusResponse_sessionToken] :: MatchStatusResponse -> !(InternalToken SessionToken)
- BattlePlace.WebApi: [matchStatusResponse_teamIndex] :: MatchStatusResponse -> {-# UNPACK #-} !Int
- BattlePlace.WebApi: [matchStatusResponse_teams] :: MatchStatusResponse -> !(Vector MatchTeam)
- BattlePlace.WebApi: [serverMatchRequest_maxSessionsCount] :: ServerMatchRequest -> {-# UNPACK #-} !Int
- BattlePlace.WebApi: [serverMatchResponse_sessions] :: ServerMatchResponse -> !(Vector ServerSession)
- BattlePlace.WebApi: [serverSession_matchTag] :: ServerSession -> !MatchTag
- BattlePlace.WebApi: [serverSession_serverSessionToken] :: ServerSession -> !(InternalToken ServerSessionToken)
- BattlePlace.WebApi: [serverSession_serverTag] :: ServerSession -> !ServerTag
- BattlePlace.WebApi: [serverSession_sessionId] :: ServerSession -> !SessionId
- BattlePlace.WebApi: [serverSession_teams] :: ServerSession -> !(Vector MatchTeam)
- BattlePlace.WebApi: data MatchCancelResponse
- BattlePlace.WebApi: data MatchPlayer
- BattlePlace.WebApi: data MatchServer
- BattlePlace.WebApi: data ServerSession
- BattlePlace.WebApi: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.MatchCancelResponse
- BattlePlace.WebApi: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.MatchPlayer
- BattlePlace.WebApi: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.MatchServer
- BattlePlace.WebApi: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.MatchTeam
- BattlePlace.WebApi: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.ServerSession
- BattlePlace.WebApi: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.MatchCancelResponse
- BattlePlace.WebApi: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.MatchPlayer
- BattlePlace.WebApi: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.MatchServer
- BattlePlace.WebApi: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.MatchTeam
- BattlePlace.WebApi: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.ServerSession
- BattlePlace.WebApi: instance GHC.Generics.Generic BattlePlace.WebApi.MatchCancelResponse
- BattlePlace.WebApi: instance GHC.Generics.Generic BattlePlace.WebApi.MatchPlayer
- BattlePlace.WebApi: instance GHC.Generics.Generic BattlePlace.WebApi.MatchServer
- BattlePlace.WebApi: instance GHC.Generics.Generic BattlePlace.WebApi.ServerSession
- BattlePlace.WebApi: newtype MatchTeam
+ BattlePlace.WebApi: ServerMatchCancelRequest :: {-# UNPACK #-} !ProjectId -> !ProjectServerToken -> !ProjectServerName -> ServerMatchCancelRequest
+ BattlePlace.WebApi: ServerMatchCancelResponse_cancelled :: ServerMatchCancelResponse
+ BattlePlace.WebApi: ServerMatchCancelResponse_unused :: ServerMatchCancelResponse
+ BattlePlace.WebApi: ServerMatchResponse_registered :: ServerMatchResponse
+ BattlePlace.WebApi: ServerMatchResponse_unused :: ServerMatchResponse
+ BattlePlace.WebApi: ServerMatchSessionsRequest :: {-# UNPACK #-} !ProjectId -> !ProjectServerToken -> !ProjectServerName -> ServerMatchSessionsRequest
+ BattlePlace.WebApi: ServerMatchSessionsResponse :: !(Vector MatchServerSession) -> ServerMatchSessionsResponse
+ BattlePlace.WebApi: [matchStatusResponse_session] :: MatchStatusResponse -> !MatchSession
+ BattlePlace.WebApi: [serverMatchCancelRequest_name] :: ServerMatchCancelRequest -> !ProjectServerName
+ BattlePlace.WebApi: [serverMatchCancelRequest_projectId] :: ServerMatchCancelRequest -> {-# UNPACK #-} !ProjectId
+ BattlePlace.WebApi: [serverMatchCancelRequest_projectServerToken] :: ServerMatchCancelRequest -> !ProjectServerToken
+ BattlePlace.WebApi: [serverMatchSessionsRequest_name] :: ServerMatchSessionsRequest -> !ProjectServerName
+ BattlePlace.WebApi: [serverMatchSessionsRequest_projectId] :: ServerMatchSessionsRequest -> {-# UNPACK #-} !ProjectId
+ BattlePlace.WebApi: [serverMatchSessionsRequest_projectServerToken] :: ServerMatchSessionsRequest -> !ProjectServerToken
+ BattlePlace.WebApi: [serverMatchSessionsResponse_sessions] :: ServerMatchSessionsResponse -> !(Vector MatchServerSession)
+ BattlePlace.WebApi: data ServerMatchCancelRequest
+ BattlePlace.WebApi: data ServerMatchCancelResponse
+ BattlePlace.WebApi: data ServerMatchSessionsRequest
+ BattlePlace.WebApi: data ServerMatchSessionsResponse
+ BattlePlace.WebApi: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.ClientDataRequest
+ BattlePlace.WebApi: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.ServerMatchCancelRequest
+ BattlePlace.WebApi: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.ServerMatchCancelResponse
+ BattlePlace.WebApi: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.ServerMatchSessionsRequest
+ BattlePlace.WebApi: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.ServerMatchSessionsResponse
+ BattlePlace.WebApi: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.ClientDataRequest
+ BattlePlace.WebApi: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.ServerMatchCancelRequest
+ BattlePlace.WebApi: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.ServerMatchCancelResponse
+ BattlePlace.WebApi: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.ServerMatchSessionsRequest
+ BattlePlace.WebApi: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.ServerMatchSessionsResponse
+ BattlePlace.WebApi: instance GHC.Generics.Generic BattlePlace.WebApi.ClientDataRequest
+ BattlePlace.WebApi: instance GHC.Generics.Generic BattlePlace.WebApi.ServerMatchCancelRequest
+ BattlePlace.WebApi: instance GHC.Generics.Generic BattlePlace.WebApi.ServerMatchCancelResponse
+ BattlePlace.WebApi: instance GHC.Generics.Generic BattlePlace.WebApi.ServerMatchSessionsRequest
+ BattlePlace.WebApi: instance GHC.Generics.Generic BattlePlace.WebApi.ServerMatchSessionsResponse
+ BattlePlace.WebApi.Types: MatchPlayer :: !MatchPlayerInfo -> !(Maybe Ticket) -> !(Maybe Ticket) -> MatchPlayer
+ BattlePlace.WebApi.Types: MatchServer :: !MatchServerInfo -> !Ticket -> !Ticket -> MatchServer
+ BattlePlace.WebApi.Types: MatchServerSession :: !SessionId -> !(InternalToken ServerSessionToken) -> !(Vector MatchTeam) -> !MatchTag -> !ServerTag -> MatchServerSession
+ BattlePlace.WebApi.Types: MatchSession :: !SessionId -> !(InternalToken SessionToken) -> !(Vector MatchTeam) -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> !(Maybe MatchServer) -> MatchSession
+ BattlePlace.WebApi.Types: MatchTeam :: (Vector MatchPlayer) -> MatchTeam
+ BattlePlace.WebApi.Types: ProjectServerName :: Text -> ProjectServerName
+ BattlePlace.WebApi.Types: [matchPlayer_info] :: MatchPlayer -> !MatchPlayerInfo
+ BattlePlace.WebApi.Types: [matchPlayer_ourTicket] :: MatchPlayer -> !(Maybe Ticket)
+ BattlePlace.WebApi.Types: [matchPlayer_theirTicket] :: MatchPlayer -> !(Maybe Ticket)
+ BattlePlace.WebApi.Types: [matchServerSession_matchTag] :: MatchServerSession -> !MatchTag
+ BattlePlace.WebApi.Types: [matchServerSession_serverSessionToken] :: MatchServerSession -> !(InternalToken ServerSessionToken)
+ BattlePlace.WebApi.Types: [matchServerSession_serverTag] :: MatchServerSession -> !ServerTag
+ BattlePlace.WebApi.Types: [matchServerSession_sessionId] :: MatchServerSession -> !SessionId
+ BattlePlace.WebApi.Types: [matchServerSession_teams] :: MatchServerSession -> !(Vector MatchTeam)
+ BattlePlace.WebApi.Types: [matchServer_info] :: MatchServer -> !MatchServerInfo
+ BattlePlace.WebApi.Types: [matchServer_ourTicket] :: MatchServer -> !Ticket
+ BattlePlace.WebApi.Types: [matchServer_theirTicket] :: MatchServer -> !Ticket
+ BattlePlace.WebApi.Types: [matchSession_mateIndex] :: MatchSession -> {-# UNPACK #-} !Int
+ BattlePlace.WebApi.Types: [matchSession_server] :: MatchSession -> !(Maybe MatchServer)
+ BattlePlace.WebApi.Types: [matchSession_sessionId] :: MatchSession -> !SessionId
+ BattlePlace.WebApi.Types: [matchSession_sessionToken] :: MatchSession -> !(InternalToken SessionToken)
+ BattlePlace.WebApi.Types: [matchSession_teamIndex] :: MatchSession -> {-# UNPACK #-} !Int
+ BattlePlace.WebApi.Types: [matchSession_teams] :: MatchSession -> !(Vector MatchTeam)
+ BattlePlace.WebApi.Types: data MatchPlayer
+ BattlePlace.WebApi.Types: data MatchServer
+ BattlePlace.WebApi.Types: data MatchServerSession
+ BattlePlace.WebApi.Types: data MatchSession
+ BattlePlace.WebApi.Types: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.Types.MatchPlayer
+ BattlePlace.WebApi.Types: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.Types.MatchServer
+ BattlePlace.WebApi.Types: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.Types.MatchServerSession
+ BattlePlace.WebApi.Types: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.Types.MatchSession
+ BattlePlace.WebApi.Types: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.Types.MatchTeam
+ BattlePlace.WebApi.Types: instance Data.Aeson.Types.FromJSON.FromJSON BattlePlace.WebApi.Types.ProjectServerName
+ BattlePlace.WebApi.Types: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.Types.MatchPlayer
+ BattlePlace.WebApi.Types: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.Types.MatchServer
+ BattlePlace.WebApi.Types: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.Types.MatchServerSession
+ BattlePlace.WebApi.Types: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.Types.MatchSession
+ BattlePlace.WebApi.Types: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.Types.MatchTeam
+ BattlePlace.WebApi.Types: instance Data.Aeson.Types.ToJSON.ToJSON BattlePlace.WebApi.Types.ProjectServerName
+ BattlePlace.WebApi.Types: instance Data.Hashable.Class.Hashable BattlePlace.WebApi.Types.ProjectServerName
+ BattlePlace.WebApi.Types: instance GHC.Classes.Eq BattlePlace.WebApi.Types.ProjectServerName
+ BattlePlace.WebApi.Types: instance GHC.Generics.Generic BattlePlace.WebApi.Types.MatchPlayer
+ BattlePlace.WebApi.Types: instance GHC.Generics.Generic BattlePlace.WebApi.Types.MatchServer
+ BattlePlace.WebApi.Types: instance GHC.Generics.Generic BattlePlace.WebApi.Types.MatchServerSession
+ BattlePlace.WebApi.Types: instance GHC.Generics.Generic BattlePlace.WebApi.Types.MatchSession
+ BattlePlace.WebApi.Types: newtype MatchTeam
+ BattlePlace.WebApi.Types: newtype ProjectServerName
- BattlePlace.WebApi: MatchStatusResponse_matched :: !SessionId -> !(InternalToken SessionToken) -> !(Vector MatchTeam) -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> !(Maybe MatchServer) -> MatchStatusResponse
+ BattlePlace.WebApi: MatchStatusResponse_matched :: !MatchSession -> MatchStatusResponse
- BattlePlace.WebApi: ServerMatchRequest :: {-# UNPACK #-} !ProjectId -> !ProjectServerToken -> !(Maybe ServerTag) -> {-# UNPACK #-} !Int -> !Text -> !(Maybe MatchServerInfo) -> !(Maybe Int) -> ServerMatchRequest
+ BattlePlace.WebApi: ServerMatchRequest :: {-# UNPACK #-} !ProjectId -> !ProjectServerToken -> !(Maybe ServerTag) -> !ProjectServerName -> !(Maybe MatchServerInfo) -> !(Maybe Int) -> ServerMatchRequest
- BattlePlace.WebApi: [serverMatchRequest_name] :: ServerMatchRequest -> !Text
+ BattlePlace.WebApi: [serverMatchRequest_name] :: ServerMatchRequest -> !ProjectServerName
- BattlePlace.WebApi: type WebApi = "v1a" :> ("client" :> ("auth" :> ReqBody '[JSON] ClientAuthRequest :> Post '[JSON] ClientAuthResponse :<|> "match" :> (AuthProtect ClientToken :> ReqBody '[JSON] MatchRequest :> Post '[JSON] MatchResponse :<|> AuthProtect ClientToken :> Capture "matchToken" (InternalToken MatchToken) :> Get '[JSON] MatchStatusResponse :<|> AuthProtect ClientToken :> Capture "matchToken" (InternalToken MatchToken) :> Delete '[JSON] MatchCancelResponse) :<|> "session" :> Capture "sessionToken" (InternalToken SessionToken) :> ("result" :> AuthProtect ClientToken :> ReqBody '[JSON] SessionResultRequest :> Post '[JSON] ()) :<|> "info" :> ("stats" :> AuthProtect ClientToken :> Get '[JSON] UserStats)) :<|> "server" :> ("match" :> ReqBody '[JSON] ServerMatchRequest :> Post '[JSON] ServerMatchResponse :<|> "session" :> Capture "serverSessionToken" (InternalToken ServerSessionToken) :> ("result" :> ReqBody '[JSON] ServerSessionResultRequest :> Post '[JSON] ())))
+ BattlePlace.WebApi: type WebApi = "v1a" :> ("client" :> ("auth" :> ReqBody '[JSON] ClientAuthRequest :> Post '[JSON] ClientAuthResponse :<|> "match" :> (AuthProtect ClientToken :> ReqBody '[JSON] MatchRequest :> Post '[JSON] MatchResponse :<|> AuthProtect ClientToken :> Capture "matchToken" (InternalToken MatchToken) :> Get '[JSON] MatchStatusResponse :<|> AuthProtect ClientToken :> Capture "matchToken" (InternalToken MatchToken) :> Delete '[JSON] ()) :<|> "session" :> Capture "sessionToken" (InternalToken SessionToken) :> ("result" :> AuthProtect ClientToken :> ReqBody '[JSON] SessionResultRequest :> Post '[JSON] ()) :<|> "info" :> ("stats" :> AuthProtect ClientToken :> Get '[JSON] UserStats)) :<|> "server" :> ("match" :> (ReqBody '[JSON] ServerMatchRequest :> Post '[JSON] ServerMatchResponse :<|> ReqBody '[JSON] ServerMatchCancelRequest :> Delete '[JSON] ServerMatchCancelResponse :<|> "sessions" :> ReqBody '[JSON] ServerMatchSessionsRequest :> Post '[JSON] ServerMatchSessionsResponse) :<|> "session" :> Capture "serverSessionToken" (InternalToken ServerSessionToken) :> ("result" :> ReqBody '[JSON] ServerSessionResultRequest :> Post '[JSON] ())))

Files

BattlePlace/WebApi.hs view
@@ -13,15 +13,14 @@ 	, MatchRequest(..) 	, MatchResponse(..) 	, MatchStatusResponse(..)-	, MatchCancelResponse(..)-	, MatchTeam(..)-	, MatchPlayer(..)-	, MatchServer(..) 	, SessionResultRequest(..) 	, ServerMatchRequest(..) 	, ServerMatchResponse(..)+	, ServerMatchCancelRequest(..)+	, ServerMatchCancelResponse(..)+	, ServerMatchSessionsRequest(..)+	, ServerMatchSessionsResponse(..) 	, ServerSessionResultRequest(..)-	, ServerSession(..) 	) where  import qualified Data.Aeson as J@@ -42,7 +41,7 @@ 		:<|> "match" :> 			(    AuthProtect ClientToken :> ReqBody '[JSON] MatchRequest :> Post '[JSON] MatchResponse 			:<|> AuthProtect ClientToken :> Capture "matchToken" (InternalToken MatchToken) :> Get '[JSON] MatchStatusResponse-			:<|> AuthProtect ClientToken :> Capture "matchToken" (InternalToken MatchToken) :> Delete '[JSON] MatchCancelResponse+			:<|> AuthProtect ClientToken :> Capture "matchToken" (InternalToken MatchToken) :> Delete '[JSON] () 			) 		:<|> "session" :> Capture "sessionToken" (InternalToken SessionToken) :> 			(    "result" :> AuthProtect ClientToken :> ReqBody '[JSON] SessionResultRequest :> Post '[JSON] ()@@ -52,7 +51,11 @@ 			) 		) 	:<|> "server" :>-		(    "match" :> ReqBody '[JSON] ServerMatchRequest :> Post '[JSON] ServerMatchResponse+		(    "match" :>+			(    ReqBody '[JSON] ServerMatchRequest :> Post '[JSON] ServerMatchResponse+			:<|> ReqBody '[JSON] ServerMatchCancelRequest :> Delete '[JSON] ServerMatchCancelResponse+			:<|> "sessions" :> ReqBody '[JSON] ServerMatchSessionsRequest :> Post '[JSON] ServerMatchSessionsResponse+			) 		:<|> "session" :> Capture "serverSessionToken" (InternalToken ServerSessionToken) :> 			(    "result" :> ReqBody '[JSON] ServerSessionResultRequest :> Post '[JSON] () 			)@@ -111,19 +114,11 @@ 	= MatchStatusResponse_notFound 	| MatchStatusResponse_inProgress 	| MatchStatusResponse_matched-		{ matchStatusResponse_sessionId :: !SessionId-		, matchStatusResponse_sessionToken :: !(InternalToken SessionToken)-		, matchStatusResponse_teams :: !(V.Vector MatchTeam)-		, matchStatusResponse_teamIndex :: {-# UNPACK #-} !Int-		, matchStatusResponse_mateIndex :: {-# UNPACK #-} !Int-		, matchStatusResponse_server :: !(Maybe MatchServer)+		{ matchStatusResponse_session :: !MatchSession 		} 	| MatchStatusResponse_failed 		{ matchStatusResponse_reason :: !MatchFailureReason 		}-	-- | Match status was cleaned.-	-- Normallly this status should not be visible to clients, it's here just in case.-	| MatchStatusResponse_cleaned 	deriving Generic instance J.FromJSON MatchStatusResponse where 	parseJSON = J.genericParseJSON jsonOptions@@ -131,40 +126,6 @@ 	toJSON = J.genericToJSON jsonOptions 	toEncoding = J.genericToEncoding jsonOptions -newtype MatchTeam = MatchTeam (V.Vector MatchPlayer) deriving (J.FromJSON, J.ToJSON)--data MatchPlayer = MatchPlayer-	{ matchPlayer_info :: !MatchPlayerInfo-	, matchPlayer_ourTicket :: !(Maybe Ticket)-	, matchPlayer_theirTicket :: !(Maybe Ticket)-	} deriving Generic-instance J.FromJSON MatchPlayer where-	parseJSON = J.genericParseJSON jsonOptions-instance J.ToJSON MatchPlayer where-	toJSON = J.genericToJSON jsonOptions-	toEncoding = J.genericToEncoding jsonOptions--data MatchServer = MatchServer-	{ matchServer_info :: !MatchServerInfo-	, matchServer_ourTicket :: !Ticket-	, matchServer_theirTicket :: !Ticket-	} deriving Generic-instance J.FromJSON MatchServer where-	parseJSON = J.genericParseJSON jsonOptions-instance J.ToJSON MatchServer where-	toJSON = J.genericToJSON jsonOptions-	toEncoding = J.genericToEncoding jsonOptions--data MatchCancelResponse-	= MatchCancelResponse_notFound-	| MatchCancelResponse_cancelled-	deriving Generic-instance J.FromJSON MatchCancelResponse where-	parseJSON = J.genericParseJSON jsonOptions-instance J.ToJSON MatchCancelResponse where-	toJSON = J.genericToJSON jsonOptions-	toEncoding = J.genericToEncoding jsonOptions- data SessionResultRequest 	= SessionResultRequest_finished 		{ sessionResultRequest_ranks :: !(V.Vector Int)@@ -177,12 +138,20 @@ 	toJSON = J.genericToJSON jsonOptions 	toEncoding = J.genericToEncoding jsonOptions +data ClientDataRequest = ClientDataRequest+	{ clientDataRequest_after :: !(Maybe T.Text)+	} deriving Generic+instance J.FromJSON ClientDataRequest where+	parseJSON = J.genericParseJSON jsonOptions+instance J.ToJSON ClientDataRequest where+	toJSON = J.genericToJSON jsonOptions+	toEncoding = J.genericToEncoding jsonOptions+ data ServerMatchRequest = ServerMatchRequest 	{ serverMatchRequest_projectId :: {-# UNPACK #-} !ProjectId 	, serverMatchRequest_projectServerToken :: !ProjectServerToken 	, serverMatchRequest_serverTag :: !(Maybe ServerTag)-	, serverMatchRequest_maxSessionsCount :: {-# UNPACK #-} !Int-	, serverMatchRequest_name :: !T.Text+	, serverMatchRequest_name :: !ProjectServerName 	, serverMatchRequest_info :: !(Maybe MatchServerInfo) 	, serverMatchRequest_timeout :: !(Maybe Int) 	} deriving Generic@@ -192,15 +161,57 @@ 	toJSON = J.genericToJSON jsonOptions 	toEncoding = J.genericToEncoding jsonOptions -data ServerMatchResponse = ServerMatchResponse-	{ serverMatchResponse_sessions :: !(V.Vector ServerSession)-	} deriving Generic+data ServerMatchResponse+	= ServerMatchResponse_registered+	| ServerMatchResponse_unused+	deriving Generic instance J.FromJSON ServerMatchResponse where 	parseJSON = J.genericParseJSON jsonOptions instance J.ToJSON ServerMatchResponse where 	toJSON = J.genericToJSON jsonOptions 	toEncoding = J.genericToEncoding jsonOptions +data ServerMatchCancelRequest = ServerMatchCancelRequest+	{ serverMatchCancelRequest_projectId :: {-# UNPACK #-} !ProjectId+	, serverMatchCancelRequest_projectServerToken :: !ProjectServerToken+	, serverMatchCancelRequest_name :: !ProjectServerName+	} deriving Generic+instance J.FromJSON ServerMatchCancelRequest where+	parseJSON = J.genericParseJSON jsonOptions+instance J.ToJSON ServerMatchCancelRequest where+	toJSON = J.genericToJSON jsonOptions+	toEncoding = J.genericToEncoding jsonOptions++data ServerMatchCancelResponse+	= ServerMatchCancelResponse_cancelled+	| ServerMatchCancelResponse_unused+	deriving Generic+instance J.FromJSON ServerMatchCancelResponse where+	parseJSON = J.genericParseJSON jsonOptions+instance J.ToJSON ServerMatchCancelResponse where+	toJSON = J.genericToJSON jsonOptions+	toEncoding = J.genericToEncoding jsonOptions++data ServerMatchSessionsRequest = ServerMatchSessionsRequest+	{ serverMatchSessionsRequest_projectId :: {-# UNPACK #-} !ProjectId+	, serverMatchSessionsRequest_projectServerToken :: !ProjectServerToken+	, serverMatchSessionsRequest_name :: !ProjectServerName+	} deriving Generic+instance J.FromJSON ServerMatchSessionsRequest where+	parseJSON = J.genericParseJSON jsonOptions+instance J.ToJSON ServerMatchSessionsRequest where+	toJSON = J.genericToJSON jsonOptions+	toEncoding = J.genericToEncoding jsonOptions++data ServerMatchSessionsResponse = ServerMatchSessionsResponse+	{ serverMatchSessionsResponse_sessions :: !(V.Vector MatchServerSession)+	} deriving Generic+instance J.FromJSON ServerMatchSessionsResponse where+	parseJSON = J.genericParseJSON jsonOptions+instance J.ToJSON ServerMatchSessionsResponse where+	toJSON = J.genericToJSON jsonOptions+	toEncoding = J.genericToEncoding jsonOptions+ data ServerSessionResultRequest 	= ServerSessionResultRequest_finished 		{ serverSessionResultRequest_ranks :: !(V.Vector Int)@@ -210,18 +221,5 @@ instance J.FromJSON ServerSessionResultRequest where 	parseJSON = J.genericParseJSON jsonOptions instance J.ToJSON ServerSessionResultRequest where-	toJSON = J.genericToJSON jsonOptions-	toEncoding = J.genericToEncoding jsonOptions--data ServerSession = ServerSession-	{ serverSession_sessionId :: !SessionId-	, serverSession_serverSessionToken :: !(InternalToken ServerSessionToken)-	, serverSession_teams :: !(V.Vector MatchTeam)-	, serverSession_matchTag :: !MatchTag-	, serverSession_serverTag :: !ServerTag-	} deriving Generic-instance J.FromJSON ServerSession where-	parseJSON = J.genericParseJSON jsonOptions-instance J.ToJSON ServerSession where 	toJSON = J.genericToJSON jsonOptions 	toEncoding = J.genericToEncoding jsonOptions
BattlePlace/WebApi/Types.hs view
@@ -17,6 +17,7 @@ 	, clientTypeOf 	, ProjectServerId(..) 	, ProjectServerToken(..)+	, ProjectServerName(..) 	, MatchTeamSize 	, MatchTag(..) 	, ServerTag(..)@@ -27,6 +28,11 @@ 	, SessionToken(..) 	, SessionId(..) 	, ServerSessionToken(..)+	, MatchSession(..)+	, MatchServerSession(..)+	, MatchTeam(..)+	, MatchPlayer(..)+	, MatchServer(..) 	, UserStats(..) 	, Identified(..) 	, Base64ByteString(..)@@ -46,12 +52,15 @@ import Data.String import qualified Data.Text as T import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy.Encoding as TL+import qualified Data.Vector as V import Data.Word import Foreign.Storable import GHC.Generics(Generic) import Servant.API  import BattlePlace.Rating+import BattlePlace.Token.Types import BattlePlace.Util  -- | Account id.@@ -152,6 +161,9 @@ -- | Project's secret server token. newtype ProjectServerToken = ProjectServerToken T.Text deriving (Eq, Hashable, J.FromJSON, J.ToJSON) +-- | Project's server name.+newtype ProjectServerName = ProjectServerName T.Text deriving (Eq, Hashable, J.FromJSON, J.ToJSON)+ -- | Size of a team in match request. type MatchTeamSize = Int @@ -217,6 +229,62 @@ 	toJSON = J.genericToJSON jsonOptions 	toEncoding = J.genericToEncoding jsonOptions +-- | Match session.+data MatchSession = MatchSession+	{ matchSession_sessionId :: !SessionId+	, matchSession_sessionToken :: !(InternalToken SessionToken)+	, matchSession_teams :: !(V.Vector MatchTeam)+	, matchSession_teamIndex :: {-# UNPACK #-} !Int+	, matchSession_mateIndex :: {-# UNPACK #-} !Int+	, matchSession_server :: !(Maybe MatchServer)+	} deriving Generic+instance J.FromJSON MatchSession where+	parseJSON = J.genericParseJSON jsonOptions+instance J.ToJSON MatchSession where+	toJSON = J.genericToJSON jsonOptions+	toEncoding = J.genericToEncoding jsonOptions++-- | Match server session.+data MatchServerSession = MatchServerSession+	{ matchServerSession_sessionId :: !SessionId+	, matchServerSession_serverSessionToken :: !(InternalToken ServerSessionToken)+	, matchServerSession_teams :: !(V.Vector MatchTeam)+	, matchServerSession_matchTag :: !MatchTag+	, matchServerSession_serverTag :: !ServerTag+	} deriving Generic+instance J.FromJSON MatchServerSession where+	parseJSON = J.genericParseJSON jsonOptions+instance J.ToJSON MatchServerSession where+	toJSON = J.genericToJSON jsonOptions+	toEncoding = J.genericToEncoding jsonOptions++-- | Match team.+newtype MatchTeam = MatchTeam (V.Vector MatchPlayer) deriving (J.FromJSON, J.ToJSON)++-- | Match player.+data MatchPlayer = MatchPlayer+	{ matchPlayer_info :: !MatchPlayerInfo+	, matchPlayer_ourTicket :: !(Maybe Ticket)+	, matchPlayer_theirTicket :: !(Maybe Ticket)+	} deriving Generic+instance J.FromJSON MatchPlayer where+	parseJSON = J.genericParseJSON jsonOptions+instance J.ToJSON MatchPlayer where+	toJSON = J.genericToJSON jsonOptions+	toEncoding = J.genericToEncoding jsonOptions++-- | Match server.+data MatchServer = MatchServer+	{ matchServer_info :: !MatchServerInfo+	, matchServer_ourTicket :: !Ticket+	, matchServer_theirTicket :: !Ticket+	} deriving Generic+instance J.FromJSON MatchServer where+	parseJSON = J.genericParseJSON jsonOptions+instance J.ToJSON MatchServer where+	toJSON = J.genericToJSON jsonOptions+	toEncoding = J.genericToEncoding jsonOptions+ -- | User stats. data UserStats = UserStats 	{ userStats_rank :: {-# UNPACK #-} !Int@@ -259,6 +327,7 @@ 	parseJSON = either fail return . BA.convertFromBase BA.Base64URLUnpadded . T.encodeUtf8 <=< J.parseJSON instance J.ToJSON Base64ByteString where 	toJSON = J.toJSON . T.decodeUtf8 . BA.convertToBase BA.Base64URLUnpadded+	toEncoding = J.toEncoding . T.decodeUtf8 . BA.convertToBase BA.Base64URLUnpadded  -- | Word64 which serializes to JSON as base64 string. -- Useful because 64-bit integer is not representable in javascript.
battleplace.cabal view
@@ -1,5 +1,5 @@ name:                battleplace-version:             0.1.0.6+version:             0.1.0.7 synopsis:            Core definitions for BattlePlace.io service description:         Core definitions for BattlePlace.io service license:             MIT