Skip to content

Commit

Permalink
finished all return classes. Had to make a few adjustments to Connect…
Browse files Browse the repository at this point in the history
…or.cs to account for API changes on the Coinbase end.
  • Loading branch information
chrisgwilliams committed Jun 29, 2014
1 parent f8b1c6e commit f12025b
Show file tree
Hide file tree
Showing 3 changed files with 145 additions and 40 deletions.
3 changes: 2 additions & 1 deletion CoinbaseConnector/Connector.cs
Expand Up @@ -495,7 +495,7 @@ public string GetTransactionsList(String ID = "", int page = 1, int limit = 25)
return JsonRequest(URL_BASE + "transactions/send_money" + sb.ToString(), POST);
}
public string SendInvoice(String from, String amount = "", String amountString = "", String amountCurrencyISO = "",
String notes = "")
String notes = "", String accountID = "")
{
// This lets the user request money from a bitcoin address. If you pass an amount param it will be
// interpreted as a bitcoin amount. Alternatively you can pass an amount_string and amount_currency_iso
Expand All @@ -519,6 +519,7 @@ public string GetTransactionsList(String ID = "", int page = 1, int limit = 25)

// OPTIONAL PARAMS
if (notes != "") sb.Append("&transaction[notes]=" + notes);
if (accountID != "") sb.Append("&transaction[account_id]=" + accountID);

return JsonRequest(URL_BASE + "transactions/request_money" + sb.ToString(), POST);
}
Expand Down
84 changes: 82 additions & 2 deletions CoinbaseConnector/JsonResults.cs
Expand Up @@ -249,7 +249,7 @@ public class RecurringPayment_Result
#region Reports
public class Reports_Result
{
public Report[] reports { get; set; }
public NestedReport[] reports { get; set; }
public string total_count { get; set; }
public string num_pages { get; set; }
public string current_page { get; set; }
Expand Down Expand Up @@ -316,26 +316,78 @@ public class GetTransactionList_Result
public string total_count { get; set; }
public string num_pages { get; set; }
public string current_page { get; set; }
public Transaction[] transactions { get; set; }
public NestedTransaction[] transactions { get; set; }
}

public class TransactionDetails_Result
{
public Transaction transaction { get; set; }
}

public class SendMoney_Result
{
public string success { get; set; }
public Transaction transaction { get; set; }
}

public class CreateInvoice_Result
{
public string success { get; set; }
public string[] errors { get; set; }
public Transaction transaction { get; set; }
}

public class ResendInvoice_Result
{
public string success { get; set; }
}

public class CancelRequest_Result
{
public string success { get; set; }
}

public class CompleteRequest_Result
{
public string success { get; set; }
public string[] errors { get; set; }
public Transaction transaction { get; set; }
}

#endregion

#region Transfers
public class Transfers_Result
{
public NestedTransfer[] transfers { get; set; }
public string total_count { get; set; }
public string num_pages { get; set; }
public string current_page { get; set; }
}

#endregion

#region Users
public class CreateUser_Result
{
public string success { get; set; }
public string[] errors { get; set; }
public User user { get; set; }
public OAuth oauth { get; set; }
}

public class AccountSettings_Result
{
public User[] users { get; set; }
}

public class UpdateAccountSettings_Result
{
public string success { get; set; }
public string[] errors { get; set; }
public User user { get; set; }
}

#endregion


Expand Down Expand Up @@ -464,6 +516,30 @@ public class NestedPaymentMethod
public PaymentMethod payment_method { get; set; }
}

public class NestedReport
{
public Report report { get; set; }
}

public class NestedTransaction
{
public Transaction transaction { get; set; }
}

public class NestedTransfer
{
public Transfer transfer { get; set; }
}

public class OAuth
{
public string access_token { get; set; }
public string token_type { get; set; }
public string expires_in { get; set; }
public string refresh_token { get; set; }
public string scope { get; set; }
}

public class OAuthApplication
{
public string id { get; set; }
Expand Down Expand Up @@ -623,6 +699,8 @@ public class Transfer
public TotalMoney btc { get; set; }
public TotalMoney subtotal { get; set; }
public TotalMoney total { get; set; }
public string transaction_id { get; set; }
public string description { get; set; }
}

public class User
Expand All @@ -637,6 +715,8 @@ public class User
public string sell_level { get; set; }
public Amount buy_limit { get; set; }
public Amount sell_limit { get; set; }
public string receive_address { get; set; }

}
#endregion
}
98 changes: 61 additions & 37 deletions TestApp/Program.cs
Expand Up @@ -250,11 +250,11 @@ static void Main(string[] args)

Console.WriteLine("Get List Of CSV Reports: ");
var reportsListResult = JsonConvert.DeserializeObject<Reports_Result>(cbc.GetReportsList());
foreach (Report report in reportsListResult.reports)
foreach (NestedReport report in reportsListResult.reports)
{
Console.WriteLine("Report ID: " + report.id);
Console.WriteLine("Sent To: " + report.email);
Console.WriteLine("Report Type: " + report.type);
Console.WriteLine("Report ID: " + report.report.id);
Console.WriteLine("Sent To: " + report.report.email);
Console.WriteLine("Report Type: " + report.report.type);
}
Console.WriteLine("");

Expand All @@ -266,11 +266,11 @@ static void Main(string[] args)
Console.WriteLine("Report Type: " + reportResult.report.type);
Console.WriteLine("");

Console.WriteLine("Get CSV Report by ID: ");
var reportdetailsResult = JsonConvert.DeserializeObject<ReportDetails_Result>(cbc.GetReportByID(reportID));
Console.WriteLine("Report ID: " + reportdetailsResult.report.id);
Console.WriteLine("Sent To: " + reportdetailsResult.report.email);
Console.WriteLine("Report Type: " + reportdetailsResult.report.type);
Console.WriteLine("Get CSV Report by ID: " + reportID);
//var reportdetailsResult = JsonConvert.DeserializeObject<ReportDetails_Result>(cbc.GetReportByID(reportID));
//Console.WriteLine("Report ID: " + reportdetailsResult.report.id);
//Console.WriteLine("Sent To: " + reportdetailsResult.report.email);
//Console.WriteLine("Report Type: " + reportdetailsResult.report.type);
Console.WriteLine("");

Console.WriteLine("Sell BitCoin: ");
Expand All @@ -286,7 +286,7 @@ static void Main(string[] args)
String subscriberID = "";
foreach (RecurringPaymentAsMerchant recurringPayment in subscriberlistResult.recurring_payments)
{
ID = recurringPayment.id;
subscriberID = recurringPayment.id;
Console.WriteLine("ID: " + subscriberID);
Console.WriteLine("Name: " + recurringPayment.button.name);
Console.WriteLine("Desc: " + recurringPayment.button.description);
Expand All @@ -295,9 +295,13 @@ static void Main(string[] args)

Console.WriteLine("Get Subscribers By ID: " + subscriberID);
var subscriber = JsonConvert.DeserializeObject<Subscriber_Result>(cbc.GetSubscribersList(subscriberID));
Console.WriteLine("ID: " + subscriber.recurring_payment.id);
Console.WriteLine("Name: " + subscriber.recurring_payment.button.name);
Console.WriteLine("Desc: " + subscriber.recurring_payment.button.description);
if (subscriber.recurring_payment != null)
{
Console.WriteLine("ID: " + subscriber.recurring_payment.id);
Console.WriteLine("Name: " + subscriber.recurring_payment.button.name);
Console.WriteLine("Desc: " + subscriber.recurring_payment.button.description);
Console.WriteLine("");
}
Console.WriteLine("");

Console.WriteLine("Create Token: ");
Expand All @@ -317,54 +321,74 @@ static void Main(string[] args)
Console.WriteLine("Name: " + gettransactionsResult.current_user.name);
Console.WriteLine("ID: " + gettransactionsResult.current_user.id);
Console.WriteLine("Balance: " + gettransactionsResult.balance.amount + ' ' + gettransactionsResult.balance.currency);
foreach (Transaction transaction in gettransactionsResult.transactions)
{
Console.WriteLine("Transaction ID: " + transaction.id);
Console.WriteLine("Created: " + transaction.created_at);
Console.WriteLine("Sender: " + transaction.sender.name);
Console.WriteLine("Recipient: " + transaction.recipient.name);
string transactionID = "";
foreach (NestedTransaction transaction in gettransactionsResult.transactions)
{
transactionID = transaction.transaction.id;
Console.WriteLine("--Transaction ID: " + transactionID);
Console.WriteLine("--Created: " + transaction.transaction.created_at);
Console.WriteLine("--Sender: " + transaction.transaction.sender.name);
Console.WriteLine("--Recipient: " + transaction.transaction.recipient.name);
Console.WriteLine("");
}
Console.WriteLine("");

Console.WriteLine("Show Transaction Details: ");
var transactiondetailsResult = JsonConvert.DeserializeObject<TransactionDetails_Result>(cbc.GetTransactionsList(transactionID));
Console.WriteLine("Recipient: " + transactiondetailsResult.transaction.recipient.name);
Console.WriteLine("Sender: " + transactiondetailsResult.transaction.sender.name);
Console.WriteLine("ID: " + transactiondetailsResult.transaction.id);
Console.WriteLine("");

Console.WriteLine("Send Money: ");
Console.WriteLine(cbc.SendMoney("test@MyStatisticallyImprobableEmailAddress.com", "0"));
var sendmoneyResult = JsonConvert.DeserializeObject<SendMoney_Result>(cbc.SendMoney("test@test.com", "0"));
Console.WriteLine("Success: " + sendmoneyResult.success);
Console.WriteLine("Sender: " + sendmoneyResult.transaction.sender.name);
Console.WriteLine("Recipient: " + sendmoneyResult.transaction.recipient.name);
Console.WriteLine("");

Console.WriteLine("Send Invoice: ");
Response = cbc.SendInvoice("test@MyStatisticallyImprobableEmailAddress.com");
Console.WriteLine(Response);
var createinvoiceResult = JsonConvert.DeserializeObject<CreateInvoice_Result>(cbc.SendInvoice("test@test.com","0.001"));
Console.WriteLine("Success: " + createinvoiceResult.success);
Console.WriteLine("Sender: " + createinvoiceResult.transaction.sender);
Console.WriteLine("Recipient: " + createinvoiceResult.transaction.recipient);
var InvoiceID = createinvoiceResult.transaction.id;
Console.WriteLine("");

var createInvoiceResult = JsonConvert.DeserializeObject<CreateInvoice_Result>(Response);
var InvoiceID = createInvoiceResult.transaction.id;

Console.WriteLine("Resend Invoice: " + InvoiceID);
Console.WriteLine(cbc.ResendInvoice(InvoiceID));
var resendResult = JsonConvert.DeserializeObject<ResendInvoice_Result>(cbc.ResendInvoice(InvoiceID));
Console.WriteLine("Success: " + resendResult.success);
Console.WriteLine("");

Console.WriteLine("Cancel Money Request: ");
Console.WriteLine(cbc.CancelMoneyRequest(InvoiceID));
Console.WriteLine("Cancel Money Request: " + InvoiceID);
var cancelrequestResult = JsonConvert.DeserializeObject<CancelRequest_Result>(cbc.CancelMoneyRequest(InvoiceID));
Console.WriteLine("Success: " + cancelrequestResult.success);
Console.WriteLine("");

Console.WriteLine("Complete Money Request: ");
Console.WriteLine(cbc.CompleteMoneyRequest(InvoiceID));
var completerequestResult = JsonConvert.DeserializeObject<CompleteRequest_Result>(cbc.CompleteMoneyRequest(InvoiceID));
Console.WriteLine("Success: " + completerequestResult.success);
Console.WriteLine("");

Console.WriteLine("Get Transfers List: ");
Console.WriteLine(cbc.GetTransfersList());
var transfersResult = JsonConvert.DeserializeObject<Transfers_Result>(cbc.GetTransfersList());
foreach (var transfers in transfersResult.transfers)
{
Console.WriteLine("Transaction ID: " + transfers.transfer.transaction_id);
Console.WriteLine("Type: " + transfers.transfer.type);
Console.WriteLine("Created At: " + transfers.transfer.created_at);
}
Console.WriteLine("");

Console.WriteLine("Create New User: ");
Console.WriteLine(cbc.CreateNewUser("newuseremail@email.com", "badpassword"));
var createuserResult = JsonConvert.DeserializeObject<CreateUser_Result>(cbc.CreateNewUser("newuseremail@email.com", "badpassword"));
Console.WriteLine("Success: " + createuserResult.success);
Console.WriteLine("Name: " + createuserResult.user.name);
Console.WriteLine("");

Console.WriteLine("Get Account Settings: ");
Response = cbc.GetAccountSettings();
Console.WriteLine(Response);
Console.WriteLine("");

var accountSettingsResult = JsonConvert.DeserializeObject<AccountSettings_Result>(Response);
foreach (User user in accountSettingsResult.users)
var accountsettingsResult = JsonConvert.DeserializeObject<AccountSettings_Result>(cbc.GetAccountSettings());
foreach (User user in accountsettingsResult.users)
{
Console.WriteLine("Update Account Settings for: " + user.id);
Console.WriteLine(cbc.UpdateAccountSettings(user.id, "My New Name"));
Expand Down

0 comments on commit f12025b

Please sign in to comment.