Example #1
0
        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);
        }
Example #2
0
        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));
        }
Example #3
0
 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.");
     }
 }
Example #4
0
 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);
        }