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

This commit is contained in:
Christian Arenas 2017-06-26 18:29:51 +02:00
parent 4f198f179e
commit b28c650e06
13 changed files with 26 additions and 39 deletions

View File

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

View File

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

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);

View File

@ -17,11 +17,11 @@
_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);
builder.Path = $"api/v1/campaigns/user/{userId}";
builder.Path = "api/v1/campaigns/user";
string uri = builder.ToString();

View File

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

View File

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

View File

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

View File

@ -21,7 +21,7 @@
public async Task GetFakeCampaignsTest()
{
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);
}

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.Linq;
@ -21,14 +23,17 @@
private readonly MarketingContext _context;
private readonly MarketingSettings _settings;
private readonly IMarketingDataRepository _marketingDataRepository;
private readonly IIdentityService _identityService;
public CampaignsController(MarketingContext context,
IMarketingDataRepository marketingDataRepository,
IOptionsSnapshot<MarketingSettings> settings)
IOptionsSnapshot<MarketingSettings> settings,
IIdentityService identityService)
{
_context = context;
_marketingDataRepository = marketingDataRepository;
_settings = settings.Value;
_identityService = identityService;
}
[HttpGet]
@ -124,9 +129,11 @@
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 campaignDtoList = new List<CampaignDTO>();

View File

@ -84,9 +84,9 @@ namespace WebMVC.Infrastructure
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)

View File

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

View File

@ -33,7 +33,7 @@ export class CampaignsService {
}
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;
return this.service.get(url).map((response: Response) => {

View File

@ -29,27 +29,17 @@
var content = new StringContent(JsonConvert.SerializeObject(location),
Encoding.UTF8, "application/json");
var userId = new Guid("4611ce3f-380d-4db5-8d76-87a8689058ed");
// GIVEN a new location of user is created
var response = await locationsServer.CreateClient()
await locationsServer.CreateClient()
.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);
//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);
Assert.True(userLocationCampaigns.Data != null);