public async Task <HttpResponseMessage> requestTopup(HttpRequestMessage pRequest, [FromBody] TopupRequestReq data) { IEnumerable <string> authKey = null; pRequest.Headers.TryGetValues("authenticationKey", out authKey); if (authKey != null) { var consumerVerified = consumerBL.AuthenticateConsumer(authKey.FirstOrDefault()); if (consumerVerified != null) { if (consumerVerified.IsValidKey) { TopupInteractor interactor = new TopupInteractor(); var validation = interactor.ValidateTopupRequest(data); if (!validation.result) { response.HttpCode = 400; response.Message = validation.Message; return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response)); } else { bool result = await topupBL.RequestTopup(consumerVerified.ConsumerID, consumerVerified.Nickname, data.targetPhoneNumber, data.vendorCode, data.amount, data.operatorID, data.CategoryID); SimpleTextResponse textResponse = new SimpleTextResponse(); textResponse.result = result; textResponse.Message = (result) ? "Succes" : "Request was made sucesfully, but notification failed"; return(Request.CreateResponse <IResponse>(HttpStatusCode.OK, textResponse)); } } else { response.HttpCode = 401; response.Message = "Authentication key is not valid"; return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response)); } } else { response.HttpCode = 401; response.Message = "Invalid authentication key"; return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response)); } } else { response.HttpCode = 401; response.Message = "Authentication key is required"; return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response)); } }
public HttpResponseMessage GetPendingTopUps(HttpRequestMessage request) { IEnumerable <string> token = null; request.Headers.TryGetValues("Token-autorization", out token); if (token == null) { response.HttpCode = 400; response.Message = "Authorization token must be provided"; return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response)); } else { PersonEN person = personBL.VerifyPersonAuthentication(token); if (person != null) { if (person.IsValidToken) { TopupInteractor interactor = new TopupInteractor(); var topupRequests = topupBL.GetTopupRequestsByVendor(person.VendorCode); var requestsApiResponse = interactor.CreatePendingTopupsResponse(topupRequests); return(Request.CreateResponse <IResponse>(HttpStatusCode.OK, requestsApiResponse)); } else { response.HttpCode = 401; response.Message = "Expired token or invalid credentials."; return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response)); } } else { response.HttpCode = 500; response.Message = "Something went wrong"; return(Request.CreateResponse <IResponse>(HttpStatusCode.InternalServerError, response)); } } }
public HttpResponseMessage Topup(HttpRequestMessage request, [FromBody] TopupRequest pOperatorData, string data, decimal amount, int code) { IEnumerable <string> token = null; request.Headers.TryGetValues("Token-autorization", out token); if (token == null) { response.HttpCode = 400; response.Message = "Authorization token must be provided"; return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response)); } else { if (!String.IsNullOrEmpty(pOperatorData.Operador) && pOperatorData.IdCountry <= 0) { response.HttpCode = 400; response.Message = "Operator name and ID must be provided"; return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response)); } else if (String.IsNullOrEmpty(data)) { response.HttpCode = 400; response.Message = "Malformed URL: Phone number must be provided"; return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response)); } else if (amount == 0) { response.HttpCode = 400; response.Message = "Malformed URL: Amount must be provided"; return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response)); } else { PersonEN person = personBL.VerifyPersonAuthentication(token); if (person != null) { TopupInteractor interactor = new TopupInteractor(); TopupTransactionEN result = topupBL.SendTopup(person, pOperatorData.Operador, amount, data, code); var bags = topupBL.GetUserBags(person.PersonID); var responseTopup = interactor.CreateTopupResponse(result, bags); if (String.Equals(result.Message, Values.Ok)) { return(Request.CreateResponse <IResponse>(HttpStatusCode.OK, responseTopup)); } else if (String.Equals(result.Message, Values.Success)) { return(Request.CreateResponse <IResponse>(HttpStatusCode.OK, responseTopup)); } else if (String.Equals(result.Message, Values.NoCreditLeft)) { return(Request.CreateResponse <IResponse>(HttpStatusCode.ServiceUnavailable, responseTopup)); } else if (String.Equals(result.Message, Values.InvalidProduct)) { return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, responseTopup)); } else { response.HttpCode = 500; response.Message = "Something went wrong"; return(Request.CreateResponse <IResponse>(HttpStatusCode.InternalServerError, response)); } } else { response.HttpCode = 500; response.Message = "Something went wrong"; return(Request.CreateResponse <IResponse>(HttpStatusCode.InternalServerError, response)); } } } }