Example #1
0
        public HttpResponseMessage GetNewUserNotifications(HttpRequestMessage pRequest)
        {
            IEnumerable <string> token = null;

            pRequest.Headers.TryGetValues("Token-autorization", out token); //TODO: Corregir error ortográfico

            if (token != null)
            {
                PersonEN personVerified = personBL.VerifyPersonAuthentication(token);

                if (personVerified != null)
                {
                    if (personVerified.IsValidToken)
                    {
                        //Obtiene las notificaciones no leidas a partir de las ultimas 10
                        var notifications = campaignBL.GetUserNewNotifications(personVerified);
                        if (notifications != null)
                        {
                            NotificationsInteractor interactor = new NotificationsInteractor();
                            var notifResponse = interactor.CreateNotificationsResponse(notifications);
                            return(Request.CreateResponse <IResponse>(HttpStatusCode.OK, notifResponse));
                        }
                        else
                        {
                            response.HttpCode = 500;
                            response.Message  = "Something went wrong";
                            return(Request.CreateResponse <IResponse>(HttpStatusCode.InternalServerError, response));
                        }
                    }
                    else
                    {
                        response.HttpCode = 401;
                        response.Message  = "Expired token or not valid credentials.";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response));
                    }
                }
                else
                {
                    response.HttpCode = 401;
                    response.Message  = "Credentials are not valid.";
                    return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response));
                }
            }
            else
            {
                response.HttpCode = 400;
                response.Message  = "Authorization token must be provided";
                return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
            }
        }
Example #2
0
        public async Task <HttpResponseMessage> sendRecarGoNotif(HttpRequestMessage pRequest, NotificationContentRequest pContent)
        {
            IEnumerable <string> apiKey = null;

            pRequest.Headers.TryGetValues("apikey", out apiKey);

            if (apiKey != null)
            {
                var externalClient = clientBL.VerifyExternalClient(apiKey);
                if (externalClient != null)
                {
                    if (String.IsNullOrEmpty(pContent.campaignTitle))
                    {
                        response.HttpCode = 400;
                        response.Message  = "Campaign title must not be empty";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
                    }
                    else if (String.IsNullOrEmpty(pContent.countryIso2Code))
                    {
                        response.HttpCode = 400;
                        response.Message  = "Must specify an ISO2 code for Country";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
                    }
                    else if (String.IsNullOrEmpty(pContent.notificationTitle))
                    {
                        response.HttpCode = 400;
                        response.Message  = "Notification title must not be empty";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
                    }
                    else if (String.IsNullOrEmpty(pContent.notificationMessage))
                    {
                        response.HttpCode = 400;
                        response.Message  = "Notification message must not be empty";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
                    }
                    else
                    {
                        DateTime start = DateTime.Now;
                        NotificationsInteractor interactor = new NotificationsInteractor();

                        CampaignEN campaign = new CampaignEN();
                        campaign.Title               = pContent.campaignTitle;
                        campaign.Description         = pContent.campaignDescription;
                        campaign.NotificationTitle   = pContent.notificationTitle;
                        campaign.NotificationMessage = pContent.notificationMessage;
                        campaign.ImageURL            = pContent.imageUrl;
                        campaign.CountryISO2Code     = pContent.countryIso2Code;
                        campaign.SpecificUser        = pContent.SpecificUser;
                        campaign.RegDate             = DateTime.Now;

                        var resultOperation = await campaignBL.SendRGOnNotification(campaign); //Envia Push

                        if (resultOperation != null)
                        {
                            var responseResult = interactor.CreateMassiveNotificationResponse(resultOperation, start);
                            return(Request.CreateResponse <IResponse>(HttpStatusCode.OK, responseResult));
                        }
                        else
                        {
                            response.HttpCode = 500;
                            response.Message  = "Something went wrong";
                            return(Request.CreateResponse <IResponse>(HttpStatusCode.InternalServerError, response));
                        }
                    }
                }
                else
                {
                    response.HttpCode = 401;
                    response.Message  = "API Key provided is not valid.";
                    return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response));
                }
            }
            else
            {
                response.HttpCode = 400;
                response.Message  = "API Key must be provided";
                return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
            }
        }
Example #3
0
        public async Task <HttpResponseMessage> DepositConfirmation(HttpRequestMessage pRequest, DepositValidationRequest pBody)
        {
            IEnumerable <string> apiKey = null;

            pRequest.Headers.TryGetValues("apikey", out apiKey);

            if (apiKey != null)
            {
                var externalClient = clientBL.VerifyExternalClient(apiKey);
                if (externalClient != null)
                {
                    if (pBody.userId <= 0)
                    {
                        response.HttpCode = 400;
                        response.Message  = "PersonID must be greater than 0";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
                    }
                    else if (String.IsNullOrEmpty(pBody.userEmail))
                    {
                        response.HttpCode = 400;
                        response.Message  = "Email is required";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
                    }
                    else if (String.IsNullOrEmpty(pBody.userFirstname))
                    {
                        response.HttpCode = 400;
                        response.Message  = "User first name must be provided";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
                    }
                    else if (String.IsNullOrEmpty(pBody.title))
                    {
                        response.HttpCode = 400;
                        response.Message  = "Notification title is required";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
                    }
                    else if (String.IsNullOrEmpty(pBody.message))
                    {
                        response.HttpCode = 400;
                        response.Message  = "Notification message is required";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
                    }
                    else
                    {
                        var resultOperation = await campaignBL.SendDepositConfirmation(pBody.userId, pBody.userEmail, pBody.userFirstname, pBody.title, pBody.message);

                        if (resultOperation != null)
                        {
                            NotificationsInteractor interactor = new NotificationsInteractor();
                            var responseResult = interactor.CreateDepositConfirmationResponse(resultOperation);

                            if (responseResult.result)
                            {
                                return(Request.CreateResponse <IResponse>(HttpStatusCode.OK, responseResult));
                            }
                            else
                            {
                                return(Request.CreateResponse <IResponse>(HttpStatusCode.InternalServerError, responseResult));
                            }
                        }
                        else
                        {
                            response.HttpCode = 500;
                            response.Message  = "Something went wrong";
                            return(Request.CreateResponse <IResponse>(HttpStatusCode.InternalServerError, response));
                        }
                    }
                }
                else
                {
                    response.HttpCode = 401;
                    response.Message  = "API Key provided is not valid.";
                    return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response));
                }
            }
            else
            {
                response.HttpCode = 400;
                response.Message  = "API Key must be provided";
                return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
            }
        }