Example #1
0
        /// <summary>
        ///     Sends a request to a repository and retrieves a JSON response
        /// </summary>
        /// <param name="request">user defined request</param>
        /// <returns>JSON response</returns>
        public string SendRequest(string request)
        {
            IRequest  requestParsed  = ParseRequest(request);
            IResponse responseObject = new Response();


            // provere da li je dobro unesen zahtev
            if (requestParsed.Noun == null)
            {
                responseObject.Payload              = new Payload();
                responseObject.Payload.Resource     = null;
                responseObject.Payload.ErrorMessage = "Request is not valid.";
                responseObject.Status     = Status.BAD_FORMAT.ToString();
                responseObject.StatusCode = StatusCode.BAD_FORMAT_CODE;
                return(JsonConvert.SerializeObject(responseObject));
            }
            else
            {
                if (requestParsed.Noun.Contains("connection"))
                {
                    if (requestParsed.Verb != "POST" && requestParsed.Verb != "DELETE")
                    {
                        responseObject.Payload              = new Payload();
                        responseObject.Payload.Resource     = null;
                        responseObject.Payload.ErrorMessage = "Method not supported.";
                        responseObject.Status     = Status.BAD_FORMAT.ToString();
                        responseObject.StatusCode = StatusCode.BAD_FORMAT_CODE;
                        return(JsonConvert.SerializeObject(responseObject));
                    }
                }
                else if (requestParsed.Noun.Contains("resource"))
                {
                    if (requestParsed.Verb != "POST" && requestParsed.Verb != "DELETE" && requestParsed.Verb != "GET" && requestParsed.Verb != "PATCH")
                    {
                        responseObject.Payload              = new Payload();
                        responseObject.Payload.Resource     = null;
                        responseObject.Payload.ErrorMessage = "Method not supported.";
                        responseObject.Status     = Status.BAD_FORMAT.ToString();
                        responseObject.StatusCode = StatusCode.BAD_FORMAT_CODE;
                        return(JsonConvert.SerializeObject(responseObject));
                    }
                }
                else
                {
                    responseObject.Payload              = new Payload();
                    responseObject.Payload.Resource     = null;
                    responseObject.Payload.ErrorMessage = "Request is not valid.";
                    responseObject.Status     = Status.BAD_FORMAT.ToString();
                    responseObject.StatusCode = StatusCode.BAD_FORMAT_CODE;
                    return(JsonConvert.SerializeObject(responseObject));
                }
            }


            // serialize u JSON, pa posalji
            string jsonFormat = JsonConvert.SerializeObject(requestParsed);

            string response = communicationBus.SendCommand(jsonFormat);

            return(response);
        }