Esempio n. 1
0
        public async Task <IApi> CreateApi(AuthenticationRequest request)
        {
            var httpClient = new HttpClient();

            // PostJson -> Extensions.cs
            HttpResponseMessage response;

            try
            {
                response = await httpClient.PostJson(
                    configuration.AppendPathToMainUrl(ApiReference.AUTHENTICATION_ROUTE),
                    request
                    );
            }
            catch (HttpRequestException exc)
            {
                throw new ServiceUnavailableException(exc.Message);
            }

            await response.ThrowErrorIfNotSuccessful();

            var data = await response.GetJson <AuthenticationResponse>();

            return(new Api(
                       new SessionInfo
            {
                Token = data.AccessToken,
                RefreshToken = data.RefreshToken,
                ExpiresAt = data.ExpiresAt,
                UserId = data.UserId
            },
                       configuration
                       ));
        }
Esempio n. 2
0
        public async Task Connect()
        {
            if (connection != null)
            {
                return;
            }
            connection = new HubConnectionBuilder()
                         .WithAutomaticReconnect()
                         .WithUrl(configuration.AppendPathToMainUrl(ApiReference.SIGNALR_HUB_ROUTE), options => options.Headers.Add("Authorization", $"Bearer {Api.GetAccessToken()}"))
                         .Build();

            await connection.StartAsync();

            await Init();
        }
Esempio n. 3
0
        public async Task <Room> CreateRoomAsync(CreateRoomRequest request)
        {
            HttpResponseMessage response;

            try
            {
                response = await httpClient.PostJson(configuration.AppendPathToMainUrl(ApiReference.CREATE_ROOM_ROUTE), request);
            }
            catch (HttpRequestException exc)
            {
                throw new ServiceUnavailableException(exc.Message);
            }

            await response.ThrowErrorIfNotSuccessful();

            var room = await response.GetJson <Room>();

            return(room);
        }