Browse Source

Remove userId setting from xamarin app and remove userId parameter from GetCampaignsByUserId in Campaign API

pull/223/merge
Christian Arenas 7 years ago
parent
commit
b28c650e06
13 changed files with 26 additions and 39 deletions
  1. +1
    -1
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml.cs
  2. +0
    -7
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Helpers/Settings.cs
  3. +1
    -1
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Marketing/CampaignMockService.cs
  4. +2
    -2
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Marketing/CampaignService.cs
  5. +1
    -1
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Marketing/ICampaignService.cs
  6. +1
    -1
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CampaignViewModel.cs
  7. +0
    -2
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/LoginViewModel.cs
  8. +1
    -1
      src/Mobile/eShopOnContainers/eShopOnContainers.UnitTests/Services/MarketingServiceTests.cs
  9. +11
    -4
      src/Services/Marketing/Marketing.API/Controllers/CampaignsController.cs
  10. +2
    -2
      src/Web/WebMVC/Infrastructure/API.cs
  11. +1
    -2
      src/Web/WebMVC/Services/CampaignService.cs
  12. +1
    -1
      src/Web/WebSPA/Client/modules/campaigns/campaigns.service.ts
  13. +4
    -14
      test/Services/FunctionalTests/Services/Marketing/MarketingScenarios.cs

+ 1
- 1
src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml.cs View File

@ -55,7 +55,7 @@ namespace eShopOnContainers
await GetGpsLocation(); await GetGpsLocation();
} }
if (!Settings.UseMocks && !string.IsNullOrEmpty(Settings.UserId))
if (!Settings.UseMocks && !string.IsNullOrEmpty(Settings.AuthAccessToken))
{ {
await SendCurrentLocation(); await SendCurrentLocation();
} }


+ 0
- 7
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Helpers/Settings.cs View File

@ -20,7 +20,6 @@ namespace eShopOnContainers.Core.Helpers
#region Setting Constants #region Setting Constants
private const string IdUserId = "user_id";
private const string AccessToken = "access_token"; private const string AccessToken = "access_token";
private const string IdToken = "id_token"; private const string IdToken = "id_token";
private const string IdUseMocks = "use_mocks"; private const string IdUseMocks = "use_mocks";
@ -40,12 +39,6 @@ namespace eShopOnContainers.Core.Helpers
#endregion #endregion
public static string UserId
{
get => AppSettings.GetValueOrDefault<string>(IdUserId);
set => AppSettings.AddOrUpdateValue<string>(IdUserId, value);
}
public static string AuthAccessToken public static string AuthAccessToken
{ {
get => AppSettings.GetValueOrDefault<string>(AccessToken, AccessTokenDefault); get => AppSettings.GetValueOrDefault<string>(AccessToken, AccessTokenDefault);


+ 1
- 1
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Marketing/CampaignMockService.cs View File

@ -36,7 +36,7 @@
} }
}; };
public async Task<ObservableCollection<CampaignItem>> GetAllCampaignsAsync(string userId, string token)
public async Task<ObservableCollection<CampaignItem>> GetAllCampaignsAsync(string token)
{ {
await Task.Delay(500); await Task.Delay(500);


+ 2
- 2
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Marketing/CampaignService.cs View File

@ -17,11 +17,11 @@
_requestProvider = requestProvider; _requestProvider = requestProvider;
} }
public async Task<ObservableCollection<CampaignItem>> GetAllCampaignsAsync(string userId, string token)
public async Task<ObservableCollection<CampaignItem>> GetAllCampaignsAsync(string token)
{ {
UriBuilder builder = new UriBuilder(GlobalSetting.Instance.MarketingEndpoint); UriBuilder builder = new UriBuilder(GlobalSetting.Instance.MarketingEndpoint);
builder.Path = $"api/v1/campaigns/user/{userId}";
builder.Path = "api/v1/campaigns/user";
string uri = builder.ToString(); string uri = builder.ToString();


+ 1
- 1
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Marketing/ICampaignService.cs View File

@ -6,7 +6,7 @@
public interface ICampaignService public interface ICampaignService
{ {
Task<ObservableCollection<CampaignItem>> GetAllCampaignsAsync(string userId, string token);
Task<ObservableCollection<CampaignItem>> GetAllCampaignsAsync(string token);
Task<CampaignItem> GetCampaignByIdAsync(int id, string token); Task<CampaignItem> GetCampaignByIdAsync(int id, string token);
} }

+ 1
- 1
src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CampaignViewModel.cs View File

@ -36,7 +36,7 @@
IsBusy = true; IsBusy = true;
// Get campaigns by user // Get campaigns by user
Campaigns = await _campaignService.GetAllCampaignsAsync(Settings.UserId, Settings.AuthAccessToken);
Campaigns = await _campaignService.GetAllCampaignsAsync(Settings.AuthAccessToken);
IsBusy = false; IsBusy = false;
} }


+ 0
- 2
src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/LoginViewModel.cs View File

@ -217,7 +217,6 @@ namespace eShopOnContainers.Core.ViewModels
Settings.AuthIdToken = string.Empty; Settings.AuthIdToken = string.Empty;
} }
Settings.UserId = string.Empty;
Settings.UseFakeLocation = false; Settings.UseFakeLocation = false;
} }
@ -244,7 +243,6 @@ namespace eShopOnContainers.Core.ViewModels
{ {
Settings.AuthAccessToken = accessToken; Settings.AuthAccessToken = accessToken;
Settings.AuthIdToken = authResponse.IdentityToken; Settings.AuthIdToken = authResponse.IdentityToken;
Settings.UserId = authResponse.Values["sub"];
await NavigationService.NavigateToAsync<MainViewModel>(); await NavigationService.NavigateToAsync<MainViewModel>();
await NavigationService.RemoveLastFromBackStackAsync(); await NavigationService.RemoveLastFromBackStackAsync();
} }


+ 1
- 1
src/Mobile/eShopOnContainers/eShopOnContainers.UnitTests/Services/MarketingServiceTests.cs View File

@ -21,7 +21,7 @@
public async Task GetFakeCampaignsTest() public async Task GetFakeCampaignsTest()
{ {
var campaignMockService = new CampaignMockService(); var campaignMockService = new CampaignMockService();
var result = await campaignMockService.GetAllCampaignsAsync(Settings.UserId, GlobalSetting.Instance.AuthToken);
var result = await campaignMockService.GetAllCampaignsAsync(GlobalSetting.Instance.AuthToken);
Assert.NotEqual(0, result.Count); Assert.NotEqual(0, result.Count);
} }


+ 11
- 4
src/Services/Marketing/Marketing.API/Controllers/CampaignsController.cs View File

@ -1,4 +1,6 @@
namespace Microsoft.eShopOnContainers.Services.Marketing.API.Controllers
using Microsoft.eShopOnContainers.Services.Locations.API.Infrastructure.Services;
namespace Microsoft.eShopOnContainers.Services.Marketing.API.Controllers
{ {
using System; using System;
using System.Linq; using System.Linq;
@ -21,14 +23,17 @@
private readonly MarketingContext _context; private readonly MarketingContext _context;
private readonly MarketingSettings _settings; private readonly MarketingSettings _settings;
private readonly IMarketingDataRepository _marketingDataRepository; private readonly IMarketingDataRepository _marketingDataRepository;
private readonly IIdentityService _identityService;
public CampaignsController(MarketingContext context, public CampaignsController(MarketingContext context,
IMarketingDataRepository marketingDataRepository, IMarketingDataRepository marketingDataRepository,
IOptionsSnapshot<MarketingSettings> settings)
IOptionsSnapshot<MarketingSettings> settings,
IIdentityService identityService)
{ {
_context = context; _context = context;
_marketingDataRepository = marketingDataRepository; _marketingDataRepository = marketingDataRepository;
_settings = settings.Value; _settings = settings.Value;
_identityService = identityService;
} }
[HttpGet] [HttpGet]
@ -124,9 +129,11 @@
return NoContent(); return NoContent();
} }
[HttpGet("user/{userId:guid}")]
public async Task<IActionResult> GetCampaignsByUserId(Guid userId, int pageSize = 10, int pageIndex = 0)
[HttpGet("user")]
public async Task<IActionResult> GetCampaignsByUserId( int pageSize = 10, int pageIndex = 0)
{ {
var userId = _identityService.GetUserIdentity();
var marketingData = await _marketingDataRepository.GetAsync(userId.ToString()); var marketingData = await _marketingDataRepository.GetAsync(userId.ToString());
var campaignDtoList = new List<CampaignDTO>(); var campaignDtoList = new List<CampaignDTO>();


+ 2
- 2
src/Web/WebMVC/Infrastructure/API.cs View File

@ -84,9 +84,9 @@ namespace WebMVC.Infrastructure
public static class Marketing public static class Marketing
{ {
public static string GetAllCampaigns(string baseUri, string userId, int take, int page)
public static string GetAllCampaigns(string baseUri, int take, int page)
{ {
return $"{baseUri}user/{userId}?pageSize={take}&pageIndex={page}";
return $"{baseUri}user?pageSize={take}&pageIndex={page}";
} }
public static string GetAllCampaignById(string baseUri, int id) public static string GetAllCampaignById(string baseUri, int id)


+ 1
- 2
src/Web/WebMVC/Services/CampaignService.cs View File

@ -32,9 +32,8 @@
public async Task<Campaign> GetCampaigns(int pageSize, int pageIndex) public async Task<Campaign> GetCampaigns(int pageSize, int pageIndex)
{ {
var userId = GetUserIdentity();
var allCampaignItemsUri = API.Marketing.GetAllCampaigns(_remoteServiceBaseUrl, var allCampaignItemsUri = API.Marketing.GetAllCampaigns(_remoteServiceBaseUrl,
userId, pageSize, pageIndex);
pageSize, pageIndex);
var authorizationToken = await GetUserTokenAsync(); var authorizationToken = await GetUserTokenAsync();
var dataString = await _apiClient.GetStringAsync(allCampaignItemsUri, authorizationToken); var dataString = await _apiClient.GetStringAsync(allCampaignItemsUri, authorizationToken);


+ 1
- 1
src/Web/WebSPA/Client/modules/campaigns/campaigns.service.ts View File

@ -33,7 +33,7 @@ export class CampaignsService {
} }
getCampaigns(pageIndex: number, pageSize: number): Observable<ICampaign> { getCampaigns(pageIndex: number, pageSize: number): Observable<ICampaign> {
let url = this.marketingUrl + '/api/v1/campaigns/user/' + this.buyerId;
let url = this.marketingUrl + '/api/v1/campaigns/user';
url = url + '?pageIndex=' + pageIndex + '&pageSize=' + pageSize; url = url + '?pageIndex=' + pageIndex + '&pageSize=' + pageSize;
return this.service.get(url).map((response: Response) => { return this.service.get(url).map((response: Response) => {


+ 4
- 14
test/Services/FunctionalTests/Services/Marketing/MarketingScenarios.cs View File

@ -29,27 +29,17 @@
var content = new StringContent(JsonConvert.SerializeObject(location), var content = new StringContent(JsonConvert.SerializeObject(location),
Encoding.UTF8, "application/json"); Encoding.UTF8, "application/json");
var userId = new Guid("4611ce3f-380d-4db5-8d76-87a8689058ed");
// GIVEN a new location of user is created // GIVEN a new location of user is created
var response = await locationsServer.CreateClient()
await locationsServer.CreateClient()
.PostAsync(LocationsScenariosBase.Post.AddNewLocation, content); .PostAsync(LocationsScenariosBase.Post.AddNewLocation, content);
//Get location user from Location.API
var userLocationResponse = await locationsServer.CreateClient()
.GetAsync(LocationsScenariosBase.Get.UserLocationBy(userId));
var responseBody = await userLocationResponse.Content.ReadAsStringAsync();
var userLocation = JsonConvert.DeserializeObject<UserLocation>(responseBody);
await Task.Delay(300); await Task.Delay(300);
//Get campaing from Marketing.API given a userId //Get campaing from Marketing.API given a userId
var UserLocationCampaignResponse = await marketingServer.CreateClient()
.GetAsync(CampaignScenariosBase.Get.UserCampaignsByUserId(userId));
var userLocationCampaignResponse = await marketingServer.CreateClient()
.GetAsync(CampaignScenariosBase.Get.UserCampaignsByUserId());
responseBody = await UserLocationCampaignResponse.Content.ReadAsStringAsync();
var responseBody = await userLocationCampaignResponse.Content.ReadAsStringAsync();
var userLocationCampaigns = JsonConvert.DeserializeObject<PaginatedItemsViewModel<CampaignDTO>>(responseBody); var userLocationCampaigns = JsonConvert.DeserializeObject<PaginatedItemsViewModel<CampaignDTO>>(responseBody);
Assert.True(userLocationCampaigns.Data != null); Assert.True(userLocationCampaigns.Data != null);


Loading…
Cancel
Save