/// <summary> /// Internals of handling message /// </summary> /// <param name="message">The message.</param> /// <returns>User gateways model</returns> public async Task <GetUserGatewaysResponse> Handle(GetUserGatewaysRequest message) { var userInstallationsResponse = await GetUserInstallations(message); if (userInstallationsResponse.StatusCode == HttpStatusCode.NotFound) { return(new GetUserGatewaysResponse() { ErrorModel = new ErrorModel(ErrorType.NotFound) }); } var userInstallations = userInstallationsResponse.Data; var gatewaysResponse = await GetGatewaysDetails(userInstallations); var gateways = Mapper.Map <IEnumerable <Gateway> >(gatewaysResponse.Data); var response = new GetUserGatewaysResponse() { Data = gateways }; return(response); }
/// <summary> /// Gets the user installations. /// </summary> /// <param name="message">The message.</param> /// <returns>List of gateways details</returns> private static Task <IRestResponse <List <int> > > GetUserInstallations(GetUserGatewaysRequest message) { var restClient = new RestClient(ConfigurationManager.AppSettings["ServiceEndpoints:Users"]); var userInstallationsRequest = new RestRequest("users/{id}/installations", Method.GET); userInstallationsRequest.AddUrlSegment("id", message.Id.ToString()); return(restClient.ExecuteTaskAsync <List <int> >(userInstallationsRequest)); }
public async Task <IHttpActionResult> GetGateways([FromUri] int id) { var idPrincipal = this.RequestContext.Principal as IdPrincipal; if (idPrincipal.UserId != id) { return(this.CreateHttpActionResult(new GetUserResponse() { ErrorModel = new ErrorModel(ErrorType.Unauthorized) })); } var request = new GetUserGatewaysRequest() { Id = id }; var responseModel = await this.getGatewaysHandler.Handle(request); return(this.CreateHttpActionResult(responseModel)); }