public async Task <ILobby> RequestInstanceAsync(string lobbyId, string username, string password)
        {
            var request  = _requestFactory.Get("/api/Lobby/" + lobbyId).AddAuthentication(username, password);
            var response = await request.SendAsync();

            return(response.IsSuccessStatusCode ? response.ReadBodyAsType <Lobby>() : null);
        }
예제 #2
0
        public void RequestInstance_CallsGetWithCorrectPath()
        {
            //arrange
            var uut = new UserProxy(_fakeFactory);

            _fakeFactory.Get("api/User/Login").Returns(_fakeBuilder);

            //act
            var result = uut.RequestInstanceAsync(_userFake.Username, _userFake.Password).Result;

            //assert
            _fakeFactory.Received().Get("api/User/Login");
        }
예제 #3
0
        public async Task <IGamePlayerInfo> GetPlayerInfoAsync(string username, string password, string gameId)
        {
            var request = _requestFactory.Get(_apiPath + gameId)
                          .AddAuthentication(username, password);
            var response = await request.SendAsync();

            return(response.IsSuccessStatusCode ? response.ReadBodyAsType <IGamePlayerInfo>() : null);
        }
예제 #4
0
        public async Task <IEnumerable <CountryDto> > GetCountries()
        {
            var response = await httpRequestFactory.Get($"{apiSettings.CountryApiUrl}/country");

            if (response.IsSuccessStatusCode)
            {
                return(response.ContentAsType <IEnumerable <CountryDto> >());
            }
            throw new CountriesNotFoundException();
        }
예제 #5
0
        public async Task <IEnumerable <TeamSportDto> > GetTeamSports()
        {
            var response = await httpRequestFactory.Get($"{apiSettings.SportApiUrl}/teamsports");

            if (response.IsSuccessStatusCode)
            {
                return(response.ContentAsType <IEnumerable <TeamSportDto> >());
            }
            return(null);
        }
예제 #6
0
        public static async Task <byte[]> GetBytesAsync(this IHttpRequestFactory httpRequestFactory, string url, TimeoutSpecification timeout = default)
        {
            if (url == null)
            {
                throw new ArgumentNullException(nameof(url));
            }

            var response = await httpRequestFactory.Get(url.ToUrl()).SendAsync(timeout).ConfigureAwait(false);

            return(await response.GetBytesAsync().ConfigureAwait(false));
        }
예제 #7
0
        public async Task <List <AlbumViewModel> > GetUserAlbums(int userId)
        {
            string jsonServiceApiUri = $"{AppSettingsConfiguration.AppSetting("ThirdPartyApiUris:JsonHolderAlbumsUri")}";
            var    response          = await _httpRequestFactory.Get(jsonServiceApiUri);

            var responseData = response.Content.ReadAsStringAsync().Result;
            List <AlbumViewModel> albumViewModels         = JsonConvert.DeserializeObject <List <AlbumViewModel> >(responseData);
            List <AlbumViewModel> filteredAlbumViewModels = albumViewModels.Where(a => a.UserId == userId).ToList();

            return(filteredAlbumViewModels);
        }
        public async Task <IUser> RequestInstanceAsync(string username, string password)
        {
            var request  = _httpRequestFactory.Get("api/User/Login").AddAuthentication(username, password);
            var response = await request.SendAsync();

            if (!response.IsSuccessStatusCode)
            {
                return(null);
            }

            return(response.ReadBodyAsType <User>());
        }
예제 #9
0
        public static async Task <byte[]?> TryGetBytesAsync(this IHttpRequestFactory httpRequestFactory, string url, TimeoutSpecification timeout = default)
        {
            if (url == null)
            {
                throw new ArgumentNullException(nameof(url));
            }

            var response = await httpRequestFactory.Get(url.ToUrl()).SendAsync(timeout, IgnoreNotFoundApiErrors).ConfigureAwait(false);

            return(response.Status.IsNotFound
                ? default
                : await response.GetBytesAsync().ConfigureAwait(false));
        }
예제 #10
0
        public async Task <List <PhotoViewModel> > GetUserSpecificAlbumPhotos(int userId)
        {
            string jsonServiceApiUri = $"{AppSettingsConfiguration.AppSetting("ThirdPartyApiUris:JsonHolderPhotosUri")}";
            var    response          = await _httpRequestFactory.Get(jsonServiceApiUri);

            var responseData = response.Content.ReadAsStringAsync().Result;
            List <PhotoViewModel> photoViewModels = JsonConvert.DeserializeObject <List <PhotoViewModel> >(responseData);
            List <AlbumViewModel> albumViewModels = await _albumService.GetUserAlbums(userId);

            var userSpecificAlbums = albumViewModels.Select(s => s.Id).ToArray();
            List <PhotoViewModel> filteredPhotoViewModels = photoViewModels.Where(p => userSpecificAlbums.Contains(p.AlbumId)).ToList();

            return(filteredPhotoViewModels);
        }
 protected override IHttpRequest MakeRequestForCommonTests(IHttpRequestFactory http) => http.Get("/some-resource");
예제 #12
0
        public async Task <IEnumerable <Application.Competitions.Queries.GetCompetitions.CompetitionDto> > GetCompetitions(GetCompetitionsQuery query)
        {
            var response = await httpRequestFactory.Get($"{apiSettings.CompetitionApiUrl}");

            if (response.IsSuccessStatusCode)
            {
                return(response.ContentAsType <IEnumerable <Application.Competitions.Queries.GetCompetitions.CompetitionDto> >());
            }
            return(new List <Application.Competitions.Queries.GetCompetitions.CompetitionDto>());
        }
예제 #13
0
 public static IHttpRequest Get(this IHttpRequestFactory requestFactory, string url) => requestFactory.Get(url.ToUrl());