private PMAPIResponse <T> makeRequest <T>(RestRequest request, HttpStatusCode expectedHttpSuccessCode) { // Make the request IRestResponse restResponse = client.RestClient.Execute(request); var response = new PMAPIResponse <T>(); var deserializer = new RestSharp.Deserializers.JsonDeserializer(); if (restResponse.StatusCode == expectedHttpSuccessCode) { try { response.Data = deserializer.Deserialize <PMAPIResponseSuccessEnvelope <T> >(restResponse); } catch (System.FormatException) { throw new PMAPIRequestUnexpectedDataFormatException(); } } else { var errorEnvelope = deserializer.Deserialize <PMAPIResponseErrorEnvelope>(restResponse); response.Error = errorEnvelope.response; } return(response); }
public SuTToken getToken() { // Set up the POST request object. var request = new RestRequest(); request.AddHeader("Accept", "application/json"); request.Method = Method.POST; // Set the endpoint request.Resource = this.endpoint; // Iterate over the parameters and set them accordingly. foreach (string key in this.parameters.Keys) { request.AddParameter(key, (string)this.parameters[key]); } // Create the rest client and execute the request RestClient client = new RestClient(this.server); IRestResponse restResponse = client.Execute(request); var response = new PMAPIResponse <Token>(); if (restResponse.StatusCode == HttpStatusCode.Accepted) { var deserializer = new RestSharp.Deserializers.JsonDeserializer(); response.Data = deserializer.Deserialize <PMAPIResponseSuccessEnvelope <Token> >(restResponse); // TODO - we don't know if deserializer worked. } else if (restResponse.StatusCode == HttpStatusCode.Unauthorized) { throw new PMAPITokenAuthorizationException(restResponse.ErrorMessage); } else { throw new PMAPITokenException(restResponse.ErrorMessage); } var data = response.Data.response.data[0]; string token = data.token; uint expiry = data.expiry; return(new SuTToken(token, expiry)); }
public void DisplayFolderItems(PMAPIResponse <FolderResponse> apiResponse) { if (apiResponse.IsSuccess()) { var response = apiResponse.Data.response; if (response.count > 0) { foreach (var item in response.data) { Console.WriteLine("id:{0}\tfolder name:{1}", item.id, item.name); } } else { Console.WriteLine("No results returned\n"); } } else { Console.WriteLine("ERROR: request failed."); } }
public void DisplayFolderItems(PMAPIResponse<FolderResponse> apiResponse) { if (apiResponse.IsSuccess()) { var response = apiResponse.Data.response; if (response.count > 0) { foreach (var item in response.data) { Console.WriteLine("id:{0}\tfolder name:{1}", item.id, item.name); } } else { Console.WriteLine("No results returned\n"); } } else { Console.WriteLine("ERROR: request failed."); } }
public SuTToken getToken() { // Set up the POST request object. var request = new RestRequest(); request.AddHeader("Accept", "application/json"); request.Method = Method.POST; // Set the endpoint request.Resource = this.endpoint; // Iterate over the parameters and set them accordingly. foreach (string key in this.parameters.Keys) { request.AddParameter(key, (string)this.parameters[key]); } // Create the rest client and execute the request RestClient client = new RestClient(this.server); IRestResponse restResponse = client.Execute(request); var response = new PMAPIResponse<Token>(); if (restResponse.StatusCode == HttpStatusCode.Accepted) { var deserializer = new RestSharp.Deserializers.JsonDeserializer(); response.Data = deserializer.Deserialize<PMAPIResponseSuccessEnvelope<Token>>(restResponse); // TODO - we don't know if deserializer worked. } else if (restResponse.StatusCode == HttpStatusCode.Unauthorized) { throw new PMAPITokenAuthorizationException(restResponse.ErrorMessage); } else { throw new PMAPITokenException(restResponse.ErrorMessage); } var data = response.Data.response.data[0]; string token = data.token; uint expiry = data.expiry; return new SuTToken(token, expiry); }