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