update Retrieve model to serve a List + Dictionary of items;

This commit is contained in:
2013-06-14 12:13:57 +02:00
parent a66fdd1876
commit cbbce90a43
6 changed files with 33 additions and 66 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ namespace PocketSharp.Console
PocketClient client = new PocketClient("15396-f6f92101d72c8e270a6c9bb3");
client.AccessCode = "a85134a7-243c-6656-ab82-97c901";
client.Get();
client.Retrieve();
System.Console.ReadKey();
}
@@ -7,14 +7,14 @@ using System.Text;
namespace PocketSharp
{
public partial class PocketClient : IPocketClient
public partial class PocketClient
{
public bool Get()
public bool Retrieve()
{
//var parameters = new List<Parameter>()
//{
// new Parameter { Name = "favorite", Value = "1", Type = ParameterType.GetOrPost }
//};
var parameters = new List<Parameter>()
{
new Parameter { Name = "favorite", Value = "1", Type = ParameterType.GetOrPost }
};
Retrieve result = GetResource<Retrieve>("get", parameters);
-50
View File
@@ -1,50 +0,0 @@
using RestSharp;
using System;
using System.Collections.Generic;
namespace PocketSharp
{
public interface IPocketClient
{
/// <summary>
/// base URL for the API
/// </summary>
Uri BaseUrl { get; set; }
/// <summary>
/// Accessor for the Pocket API key
/// see: http://getpocket.com/developer
/// </summary>
string ConsumerKey { get; set; }
/// <summary>
/// Returns all associated data from the last request
/// </summary>
IRestResponse LastRequestData { get; }
/// <summary>
/// Makes a HTTP REST request to the API
/// </summary>
/// <param name="request">The request.</param>
/// <returns></returns>
string Request(RestRequest request);
/// <summary>
/// Makes a typed HTTP REST request to the API
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="request">The request.</param>
/// <returns></returns>
T Request<T>(RestRequest request) where T : new();
/// <summary>
/// Fetches a typed resource
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="method">Requested method (path after /v3/)</param>
/// <param name="parameters">Additional POST parameters</param>
/// <returns></returns>
/// <exception cref="APIException">No access token available. Use authentification first.</exception>
T GetResource<T>(string method, List<Parameter> parameters) where T : class, new();
}
}
+21 -3
View File
@@ -7,13 +7,31 @@ namespace PocketSharp.Models
[DataContract]
class Retrieve : ResponseBase
{
[DataMember]
public bool Complete { get; set; }
[DataMember(Name = "complete")]
public int Complete;
[DataMember]
public int Since { get; set; }
[DataMember(Name = "list")]
public List<PocketItem> Items { get; set; }
public Dictionary<string, PocketItem> ItemDictionary { get; set; }
[IgnoreDataMember]
public List<PocketItem> Items
{
get
{
var itemEnumerator = ItemDictionary.GetEnumerator();
List<PocketItem> result = new List<PocketItem>();
while (itemEnumerator.MoveNext())
{
result.Add(itemEnumerator.Current.Value);
}
return result;
}
private set {}
}
}
}
+4 -4
View File
@@ -5,7 +5,7 @@ using System.Net;
namespace PocketSharp
{
public partial class PocketClient : IPocketClient
public partial class PocketClient
{
/// <summary>
/// REST client used for the API communication
@@ -87,7 +87,7 @@ namespace PocketSharp
/// </summary>
/// <param name="request">The request.</param>
/// <returns></returns>
public string Request(RestRequest request)
protected string Request(RestRequest request)
{
IRestResponse response = _restClient.Execute(request);
@@ -103,7 +103,7 @@ namespace PocketSharp
/// <typeparam name="T"></typeparam>
/// <param name="request">The request.</param>
/// <returns></returns>
public T Request<T>(RestRequest request) where T : new()
protected T Request<T>(RestRequest request) where T : new()
{
IRestResponse<T> response = _restClient.Execute<T>(request);
@@ -122,7 +122,7 @@ namespace PocketSharp
/// <param name="parameters">Additional POST parameters</param>
/// <returns></returns>
/// <exception cref="APIException">No access token available. Use authentification first.</exception>
public T GetResource<T>(string method, List<Parameter> parameters) where T : class, new()
protected T GetResource<T>(string method, List<Parameter> parameters) where T : class, new()
{
// every single Pocket API endpoint requires HTTP POST data
var request = new RestRequest(method, Method.POST);
+1 -2
View File
@@ -48,8 +48,7 @@
<ItemGroup>
<Compile Include="APIException.cs" />
<Compile Include="Components\Authentification.cs" />
<Compile Include="Components\Get.cs" />
<Compile Include="IPocketClient.cs" />
<Compile Include="Components\Retrieve.cs" />
<Compile Include="JsonDeserializer.cs" />
<Compile Include="Models\Authentification\AccessCode.cs" />
<Compile Include="Models\Authentification\RequestCode.cs" />