diff --git a/README.md b/README.md index 0745595..5f6d103 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,8 @@ keys are accessible from within the Payload dashboard. ```csharp using Payload; -pl.ApiKey = "secret_key_3bW9JMZtPVDOfFNzwRdfE"; + +var pl = new Payload.Session("secret_key_3bW9JMZtPVDOfFNzwRdfE") ``` ### Creating an Object diff --git a/src/Payload/ARM/ARMObject.cs b/src/Payload/ARM/ARMObject.cs index 1d50258..afa2184 100644 --- a/src/Payload/ARM/ARMObject.cs +++ b/src/Payload/ARM/ARMObject.cs @@ -22,7 +22,7 @@ public static class ARMObjectCache { public static ConcurrentDictionary _cache = new ConcurrentDictionary(); - public static dynamic GetOrCreate(Type type, Dynamo data, pl.Session session) + public static dynamic GetOrCreate(Type type, Dynamo data, Payload.Session session) { dynamic obj; if (type == data.GetType()) @@ -63,7 +63,7 @@ public static dynamic GetOrCreate(Type type, Dynamo data, pl.Session session) return obj; } - public static T GetOrCreate(T data, pl.Session session) where T : ARMObjectBase + public static T GetOrCreate(T data, Payload.Session session) where T : ARMObjectBase { return GetOrCreate(typeof(T), data, session); } @@ -90,7 +90,7 @@ public interface IARMObject public abstract class ARMObjectBase : JSONObject, IARMObject where T : ARMObjectBase { private static Dictionary _defaultParams = new Dictionary(); - public pl.Session session = null; + public Payload.Session session = null; public static pl.DefaultParams DefaultParams { @@ -274,19 +274,19 @@ public async Task DeleteAsync() public T Delete() => DeleteAsync().GetAwaiter().GetResult(); - public static async Task GetAsync(string id, pl.Session session = null) + public static async Task GetAsync(string id, Payload.Session session = null) { var req = new ARMRequest(session); return await req.RequestAsync(RequestMethods.GET, req.GetRoute(id)); } - public static T Get(string id, pl.Session session = null) => GetAsync(id, session).GetAwaiter().GetResult(); + public static T Get(string id, Payload.Session session = null) => GetAsync(id, session).GetAwaiter().GetResult(); public static ARMRequest FilterBy(params object[] list) { - pl.Session session = (pl.Session)(list.Where(item => item is pl.Session).FirstOrDefault() ?? pl.DefaultSession); - List filters = list.Where(item => !(item is pl.Session)).ToList(); + Payload.Session session = (Payload.Session)(list.Where(item => item is Payload.Session).FirstOrDefault() ?? pl.DefaultSession); + List filters = list.Where(item => !(item is Payload.Session)).ToList(); var req = new ARMRequest(session); @@ -301,8 +301,8 @@ public static ARMRequest FilterBy(params object[] list) public static ARMRequest Select(params object[] list) { - pl.Session session = (pl.Session)(list.Where(item => item is pl.Session).FirstOrDefault() ?? pl.DefaultSession); - List attrs = list.Where(item => !(item is pl.Session)).ToList(); + Payload.Session session = (Payload.Session)(list.Where(item => item is Payload.Session).FirstOrDefault() ?? pl.DefaultSession); + List attrs = list.Where(item => !(item is Payload.Session)).ToList(); var req = new ARMRequest(session); @@ -312,7 +312,7 @@ public static ARMRequest Select(params object[] list) return req; } - public static async Task> CreateAllAsync(IEnumerable objects, pl.Session session = null) + public static async Task> CreateAllAsync(IEnumerable objects, Payload.Session session = null) { var lst = new List(); foreach (dynamic obj in objects) @@ -325,27 +325,27 @@ public static async Task> CreateAllAsync(IEnumerable objects, p return await new ARMRequest(session).CreateAllAsync(lst); } - public static List CreateAll(IEnumerable objects, pl.Session session = null) => CreateAllAsync(objects.ToArray(), session).GetAwaiter().GetResult(); + public static List CreateAll(IEnumerable objects, Payload.Session session = null) => CreateAllAsync(objects.ToArray(), session).GetAwaiter().GetResult(); - public static async Task CreateAsync(dynamic attributes, pl.Session session = null) + public static async Task CreateAsync(dynamic attributes, Payload.Session session = null) { return await new ARMRequest(session).CreateAsync(attributes); } - public static T Create(dynamic obj = null, pl.Session session = null) => CreateAsync(obj, session).GetAwaiter().GetResult(); + public static T Create(dynamic obj = null, Payload.Session session = null) => CreateAsync(obj, session).GetAwaiter().GetResult(); - public static async Task> UpdateAllAsync((T, object)[] updates, pl.Session session = null) + public static async Task> UpdateAllAsync((T, object)[] updates, Payload.Session session = null) { return await new ARMRequest(session).UpdateAllAsync(updates.ToArray()); } - public static List UpdateAll((T, object)[] updates, pl.Session session = null) => UpdateAllAsync(updates, session).GetAwaiter().GetResult(); + public static List UpdateAll((T, object)[] updates, Payload.Session session = null) => UpdateAllAsync(updates, session).GetAwaiter().GetResult(); - public static async Task> DeleteAllAsync(List objects, pl.Session session = null) + public static async Task> DeleteAllAsync(List objects, Payload.Session session = null) { return await new ARMRequest(session).DeleteAllAsync(objects.ToArray()); } - public static List DeleteAll(List objects, pl.Session session = null) => DeleteAllAsync(objects, session).GetAwaiter().GetResult(); + public static List DeleteAll(List objects, Payload.Session session = null) => DeleteAllAsync(objects, session).GetAwaiter().GetResult(); } } diff --git a/src/Payload/ARM/ARMRequest.cs b/src/Payload/ARM/ARMRequest.cs index 38a0db2..c423e6c 100644 --- a/src/Payload/ARM/ARMRequest.cs +++ b/src/Payload/ARM/ARMRequest.cs @@ -28,14 +28,14 @@ public class ARMRequest where T : ARMObjectBase public List _fields; public List _group_by; public List _order_by; - private pl.Session session; + private Payload.Session session; private static JsonSerializerSettings jsonsettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; - private void Init(pl.Session session = null) + private void Init(Payload.Session session = null) { var obj = (T)Activator.CreateInstance(typeof(T)); Spec = obj.GetSpec(); @@ -53,7 +53,7 @@ public ARMRequest() Init(); } - public ARMRequest(pl.Session session) + public ARMRequest(Payload.Session session) { Init(session); } diff --git a/src/Payload/Payload.cs b/src/Payload/Payload.cs index b13c188..07b5a5b 100644 --- a/src/Payload/Payload.cs +++ b/src/Payload/Payload.cs @@ -8,7 +8,7 @@ namespace Payload { - public static partial class pl + public static partial class Payload { public partial class Session { @@ -25,8 +25,8 @@ public Session(string api_key) public override bool Equals(object obj) { return obj is Session session && - ApiKey == session.ApiKey && - ApiUrl == session.ApiUrl; + ApiKey == session.ApiKey && + ApiUrl == session.ApiUrl; } public async Task> CreateAllAsync(params T[] objects) where T : ARMObjectBase @@ -101,11 +101,15 @@ public override int GetHashCode() return hashCode; } } + } + + public static partial class pl + { public static string ApiKey { get { return DefaultSession.ApiKey; } set { DefaultSession.ApiKey = value; } } public static string ApiUrl { get { return DefaultSession.ApiUrl; } set { DefaultSession.ApiUrl = value; } } public static dynamic Attr = new Attr(null); - public static Session DefaultSession = new Session(null); + public static Payload.Session DefaultSession = new Payload.Session(null); public static async Task> CreateAllAsync(IEnumerable objects) where T : ARMObjectBase { @@ -205,7 +209,7 @@ public async Task ChargeAsync(dynamic obj) data.customer_id = this["id"]; return await Payment.CreateAsync(data); } - + public Payment Charge(dynamic obj) { return ChargeAsync(obj).GetAwaiter().GetResult(); diff --git a/src/Payload/Payload.csproj b/src/Payload/Payload.csproj index 3bc6778..5a99dcc 100644 --- a/src/Payload/Payload.csproj +++ b/src/Payload/Payload.csproj @@ -4,8 +4,8 @@ Payload netstandard2.0;net461 Payload - 1.0.4 - 1.0.4 + 2.0.0 + 2.0.0 Payload, Ian Halpern, Ben Ward Payload payload-api diff --git a/src/Payload/Session.cs b/src/Payload/Session.cs index 54d9251..94e4c8b 100644 --- a/src/Payload/Session.cs +++ b/src/Payload/Session.cs @@ -5,36 +5,36 @@ namespace Payload { - public partial class pl + public partial class Payload { public partial class Session { - public ARMRequest AccessToken => new ARMRequest(this); - public ARMRequest ClientToken => new ARMRequest(this); - public ARMRequest Account => new ARMRequest(this); - public ARMRequest Customer => new ARMRequest(this); - public ARMRequest ProcessingAccount => new ARMRequest(this); - public ARMRequest Org => new ARMRequest(this); - public ARMRequest User => new ARMRequest(this); - public ARMRequest Transaction => new ARMRequest(this); - public ARMRequest Payment => new ARMRequest(this); - public ARMRequest Refund => new ARMRequest(this); - public ARMRequest Credit => new ARMRequest(this); - public ARMRequest Deposit => new ARMRequest(this); - public ARMRequest Ledger => new ARMRequest(this); - public ARMRequest PaymentMethod => new ARMRequest(this); - public ARMRequest Card => new ARMRequest(this); - public ARMRequest BankAccount => new ARMRequest(this); - public ARMRequest BillingSchedule => new ARMRequest(this); - public ARMRequest BillingCharge => new ARMRequest(this); - public ARMRequest Invoice => new ARMRequest(this); - public ARMRequest LineItem => new ARMRequest(this); - public ARMRequest ChargeItem => new ARMRequest(this); - public ARMRequest PaymentItem => new ARMRequest(this); - public ARMRequest Webhook => new ARMRequest(this); - public ARMRequest PaymentLink => new ARMRequest(this); - public ARMRequest OAuthToken => new ARMRequest(this); - public ARMRequest PaymentActivation => new ARMRequest(this); + public ARMRequest AccessToken => new ARMRequest(this); + public ARMRequest ClientToken => new ARMRequest(this); + public ARMRequest Account => new ARMRequest(this); + public ARMRequest Customer => new ARMRequest(this); + public ARMRequest ProcessingAccount => new ARMRequest(this); + public ARMRequest Org => new ARMRequest(this); + public ARMRequest User => new ARMRequest(this); + public ARMRequest Transaction => new ARMRequest(this); + public ARMRequest Payment => new ARMRequest(this); + public ARMRequest Refund => new ARMRequest(this); + public ARMRequest Credit => new ARMRequest(this); + public ARMRequest Deposit => new ARMRequest(this); + public ARMRequest Ledger => new ARMRequest(this); + public ARMRequest PaymentMethod => new ARMRequest(this); + public ARMRequest Card => new ARMRequest(this); + public ARMRequest BankAccount => new ARMRequest(this); + public ARMRequest BillingSchedule => new ARMRequest(this); + public ARMRequest BillingCharge => new ARMRequest(this); + public ARMRequest Invoice => new ARMRequest(this); + public ARMRequest LineItem => new ARMRequest(this); + public ARMRequest ChargeItem => new ARMRequest(this); + public ARMRequest PaymentItem => new ARMRequest(this); + public ARMRequest Webhook => new ARMRequest(this); + public ARMRequest PaymentLink => new ARMRequest(this); + public ARMRequest OAuthToken => new ARMRequest(this); + public ARMRequest PaymentActivation => new ARMRequest(this); } } } diff --git a/src/PayloadTests/DeepDiff.cs b/src/PayloadTests/DeepDiff.cs index bc2980c..cf4d4b0 100644 --- a/src/PayloadTests/DeepDiff.cs +++ b/src/PayloadTests/DeepDiff.cs @@ -77,7 +77,8 @@ void CompareWithEquals() { CompareWithEquals(); } - catch (ArgumentException) { + catch (ArgumentException) + { CompareWithEquals(); } } diff --git a/src/PayloadTests/TestARMRequest.cs b/src/PayloadTests/TestARMRequest.cs index 7507e49..bba5c82 100644 --- a/src/PayloadTests/TestARMRequest.cs +++ b/src/PayloadTests/TestARMRequest.cs @@ -15,7 +15,7 @@ public class TestARMRequest [Test] public void test_defaultparams() { - pl.Customer.DefaultParams.Fields = new [] { "*", pl.Attr.name }; + pl.Customer.DefaultParams.Fields = new[] { "*", pl.Attr.name }; var mock = new Mock> { CallBase = true }; var mockRespJson = new JSONObject(); mockRespJson["values"] = new JArray(); diff --git a/src/PayloadTests/TestAccount.cs b/src/PayloadTests/TestAccount.cs index 6d3db8e..20c3ea1 100644 --- a/src/PayloadTests/TestAccount.cs +++ b/src/PayloadTests/TestAccount.cs @@ -127,8 +127,8 @@ public void test_update_mult_acc() }); pl.UpdateAll( - (customer_account_1, new { email="matt.perez@newwork.com" }), - (customer_account_2, new { email="andrea.kearney@newwork.com" }) + (customer_account_1, new { email = "matt.perez@newwork.com" }), + (customer_account_2, new { email = "andrea.kearney@newwork.com" }) ); Assert.True(customer_account_1.Data.email == "brandy@example.com"); diff --git a/src/PayloadTests/TestSession.cs b/src/PayloadTests/TestSession.cs index 2255fae..8ec82b5 100644 --- a/src/PayloadTests/TestSession.cs +++ b/src/PayloadTests/TestSession.cs @@ -11,14 +11,14 @@ namespace Payload.Tests { public class TestSession { - pl.Session session; + Payload.Session session; [SetUp] public void Setup() { pl.ApiKey = null; - this.session = new pl.Session(Environment.GetEnvironmentVariable("API_KEY")); + this.session = new Payload.Session(Environment.GetEnvironmentVariable("API_KEY")); string url = Environment.GetEnvironmentVariable("API_URL"); if (url != null) this.session.ApiUrl = url; @@ -43,7 +43,7 @@ public void test_armobject_references() var sessionObjects = new HashSet(); - foreach (PropertyInfo property in typeof(pl.Session).GetProperties()) + foreach (PropertyInfo property in typeof(Payload.Session).GetProperties()) { if (property.PropertyType.IsGenericType && property.PropertyType.GetGenericTypeDefinition() == typeof(ARMRequest<>)) @@ -62,7 +62,7 @@ public void test_armobject_references() foreach (var globalObj in globalObjects) { if (!sessionObjects.Contains(globalObj)) - throw new Exception($"pl.Session is missing the resource property '{globalObj}'"); + throw new Exception($"Payload.Session is missing the resource property '{globalObj}'"); } } @@ -73,7 +73,7 @@ public void test_client_token() Assert.AreEqual(client_token.status, "active"); Assert.AreEqual(client_token.type, "client"); - client_token = this.session.ClientToken.Create(new {}); + client_token = this.session.ClientToken.Create(new { }); Assert.AreEqual(client_token.status, "active"); Assert.AreEqual(client_token.type, "client"); }