From 0faff6cb196b58dac2a12024f9665a58a376acb1 Mon Sep 17 00:00:00 2001 From: alexandrumatei Date: Wed, 8 Jan 2025 07:58:23 +0200 Subject: [PATCH 1/4] Adds VirtualAccount types --- MangoPay.SDK/Core/Enumerations/EventType.cs | 7 +++- .../Entities/GET/VirtualAccountDTO.cs | 27 ++++++++++++++++ MangoPay.SDK/Entities/InternationalAccount.cs | 9 ++++++ .../Entities/InternationalAccountDetails.cs | 9 ++++++ MangoPay.SDK/Entities/LocalAccount.cs | 9 ++++++ MangoPay.SDK/Entities/LocalAccountDetails.cs | 9 ++++++ .../Entities/POST/VirtualAccountPostDTO.cs | 32 +++++++++++++++++++ .../Entities/PUT/VirtualAccountPutDTO.cs | 32 +++++++++++++++++++ .../Entities/VirtualAccountAddress.cs | 29 +++++++++++++++++ .../Entities/VirtualAccountAvailabilities.cs | 17 ++++++++++ .../Entities/VirtualAccountAvailability.cs | 27 ++++++++++++++++ .../Entities/VirtualAccountCapabilities.cs | 26 +++++++++++++++ 12 files changed, 232 insertions(+), 1 deletion(-) create mode 100644 MangoPay.SDK/Entities/GET/VirtualAccountDTO.cs create mode 100644 MangoPay.SDK/Entities/InternationalAccount.cs create mode 100644 MangoPay.SDK/Entities/InternationalAccountDetails.cs create mode 100644 MangoPay.SDK/Entities/LocalAccount.cs create mode 100644 MangoPay.SDK/Entities/LocalAccountDetails.cs create mode 100644 MangoPay.SDK/Entities/POST/VirtualAccountPostDTO.cs create mode 100644 MangoPay.SDK/Entities/PUT/VirtualAccountPutDTO.cs create mode 100644 MangoPay.SDK/Entities/VirtualAccountAddress.cs create mode 100644 MangoPay.SDK/Entities/VirtualAccountAvailabilities.cs create mode 100644 MangoPay.SDK/Entities/VirtualAccountAvailability.cs create mode 100644 MangoPay.SDK/Entities/VirtualAccountCapabilities.cs diff --git a/MangoPay.SDK/Core/Enumerations/EventType.cs b/MangoPay.SDK/Core/Enumerations/EventType.cs index 68c26c1f..5d6a1d1b 100644 --- a/MangoPay.SDK/Core/Enumerations/EventType.cs +++ b/MangoPay.SDK/Core/Enumerations/EventType.cs @@ -100,6 +100,11 @@ public enum EventType CARD_VALIDATION_SUCCEEDED, LEGAL_COMPANY_NUMBER_VALIDATION_SUCCEEDED, - LEGAL_COMPANY_NUMBER_VALIDATION_FAILED + LEGAL_COMPANY_NUMBER_VALIDATION_FAILED, + + VIRTUAL_ACCOUNT_ACTIVE, + VIRTUAL_ACCOUNT_BLOCKED, + VIRTUAL_ACCOUNT_CLOSED, + VIRTUAL_ACCOUNT_FAILED } } diff --git a/MangoPay.SDK/Entities/GET/VirtualAccountDTO.cs b/MangoPay.SDK/Entities/GET/VirtualAccountDTO.cs new file mode 100644 index 00000000..9d34f098 --- /dev/null +++ b/MangoPay.SDK/Entities/GET/VirtualAccountDTO.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; + +namespace MangoPay.SDK.Entities.GET +{ + public class VirtualAccountDTO : EntityBase + { + public string WalletId { get; set; } + + public string CreditedUserId { get; set; } + + public string VirtualAccountPurpose { get; set; } + + public string Country { get; set; } + + public string Status { get; set; } + + public bool Active { get; set; } + + public string AccountOwner { get; set; } + + public LocalAccountDetails LocalAccountDetails { get; set; } + + public List InternationalAccountDetails { get; set; } + + public VirtualAccountCapabilities Capabilities { get; set; } + } +} \ No newline at end of file diff --git a/MangoPay.SDK/Entities/InternationalAccount.cs b/MangoPay.SDK/Entities/InternationalAccount.cs new file mode 100644 index 00000000..de923c09 --- /dev/null +++ b/MangoPay.SDK/Entities/InternationalAccount.cs @@ -0,0 +1,9 @@ +namespace MangoPay.SDK.Entities +{ + public class InternationalAccount + { + public string IBAN { get; set; } + + public string BIC { get; set; } + } +} \ No newline at end of file diff --git a/MangoPay.SDK/Entities/InternationalAccountDetails.cs b/MangoPay.SDK/Entities/InternationalAccountDetails.cs new file mode 100644 index 00000000..cb33a137 --- /dev/null +++ b/MangoPay.SDK/Entities/InternationalAccountDetails.cs @@ -0,0 +1,9 @@ +namespace MangoPay.SDK.Entities +{ + public class InternationalAccountDetails + { + public VirtualAccountAddress Address { get; set; } + + public InternationalAccount Account { get; set; } + } +} \ No newline at end of file diff --git a/MangoPay.SDK/Entities/LocalAccount.cs b/MangoPay.SDK/Entities/LocalAccount.cs new file mode 100644 index 00000000..380b4b03 --- /dev/null +++ b/MangoPay.SDK/Entities/LocalAccount.cs @@ -0,0 +1,9 @@ +namespace MangoPay.SDK.Entities +{ + public class LocalAccount + { + public string AccountNumber { get; set; } + + public string SortCode { get; set; } + } +} \ No newline at end of file diff --git a/MangoPay.SDK/Entities/LocalAccountDetails.cs b/MangoPay.SDK/Entities/LocalAccountDetails.cs new file mode 100644 index 00000000..54665de6 --- /dev/null +++ b/MangoPay.SDK/Entities/LocalAccountDetails.cs @@ -0,0 +1,9 @@ +namespace MangoPay.SDK.Entities +{ + public class LocalAccountDetails : EntityBase + { + public VirtualAccountAddress Address { get; set; } + + public LocalAccount Account { get; set; } + } +} \ No newline at end of file diff --git a/MangoPay.SDK/Entities/POST/VirtualAccountPostDTO.cs b/MangoPay.SDK/Entities/POST/VirtualAccountPostDTO.cs new file mode 100644 index 00000000..2d8d50eb --- /dev/null +++ b/MangoPay.SDK/Entities/POST/VirtualAccountPostDTO.cs @@ -0,0 +1,32 @@ +using System.Collections.Generic; + +namespace MangoPay.SDK.Entities.POST +{ + public class VirtualAccountPostDTO : EntityPostBase + { + public VirtualAccountPostDTO() + { + + } + + public string WalletId { get; set; } + + public string CreditedUserId { get; set; } + + public string VirtualAccountPurpose { get; set; } + + public string Country { get; set; } + + public string Status { get; set; } + + public bool Active { get; set; } + + public string AccountOwner { get; set; } + + public LocalAccountDetails LocalAccountDetails { get; set; } + + public List InternationalAccountDetails { get; set; } + + public VirtualAccountCapabilities Capabilities { get; set; } + } +} \ No newline at end of file diff --git a/MangoPay.SDK/Entities/PUT/VirtualAccountPutDTO.cs b/MangoPay.SDK/Entities/PUT/VirtualAccountPutDTO.cs new file mode 100644 index 00000000..12ef96e3 --- /dev/null +++ b/MangoPay.SDK/Entities/PUT/VirtualAccountPutDTO.cs @@ -0,0 +1,32 @@ +using System.Collections.Generic; + +namespace MangoPay.SDK.Entities.PUT +{ + public class VirtualAccountPutDTO : EntityPutBase + { + public VirtualAccountPutDTO(string status) + { + Status = status; + } + + public string WalletId { get; set; } + + public string CreditedUserId { get; set; } + + public string VirtualAccountPurpose { get; set; } + + public string Country { get; set; } + + public string Status { get; set; } + + public bool Active { get; set; } + + public string AccountOwner { get; set; } + + public LocalAccountDetails LocalAccountDetails { get; set; } + + public List InternationalAccountDetails { get; set; } + + public VirtualAccountCapabilities Capabilities { get; set; } + } +} \ No newline at end of file diff --git a/MangoPay.SDK/Entities/VirtualAccountAddress.cs b/MangoPay.SDK/Entities/VirtualAccountAddress.cs new file mode 100644 index 00000000..31c7286a --- /dev/null +++ b/MangoPay.SDK/Entities/VirtualAccountAddress.cs @@ -0,0 +1,29 @@ +namespace MangoPay.SDK.Entities +{ + public class VirtualAccountAddress + { + public VirtualAccountAddress( + string streetName, + string postCode, + string townName, + string countrySubDivision, + string country) + { + StreetName = streetName; + PostCode = postCode; + TownName = townName; + CountrySubDivision = countrySubDivision; + Country = country; + } + + private string StreetName { get; set; } + + private string PostCode { get; set; } + + private string TownName { get; set; } + + private string CountrySubDivision { get; set; } + + private string Country { get; set; } + } +} \ No newline at end of file diff --git a/MangoPay.SDK/Entities/VirtualAccountAvailabilities.cs b/MangoPay.SDK/Entities/VirtualAccountAvailabilities.cs new file mode 100644 index 00000000..cf08af2a --- /dev/null +++ b/MangoPay.SDK/Entities/VirtualAccountAvailabilities.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace MangoPay.SDK.Entities +{ + public class VirtualAccountAvailabilities + { + public VirtualAccountAvailabilities() + { + Collection = new List(); + UserOwned = new List(); + } + + public List Collection; + + public List UserOwned; + } +} \ No newline at end of file diff --git a/MangoPay.SDK/Entities/VirtualAccountAvailability.cs b/MangoPay.SDK/Entities/VirtualAccountAvailability.cs new file mode 100644 index 00000000..17145fa6 --- /dev/null +++ b/MangoPay.SDK/Entities/VirtualAccountAvailability.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using MangoPay.SDK.Core.Enumerations; + +namespace MangoPay.SDK.Entities +{ + public class VirtualAccountAvailability + { + + public VirtualAccountAvailability() + { + Currencies = new List(); + } + + public VirtualAccountAvailability(string country, bool available) + { + Country = country; + Available = available; + Currencies = new List(); + } + + private string Country { get; set; } + + private bool Available { get; set; } + + public List Currencies; + } +} \ No newline at end of file diff --git a/MangoPay.SDK/Entities/VirtualAccountCapabilities.cs b/MangoPay.SDK/Entities/VirtualAccountCapabilities.cs new file mode 100644 index 00000000..66a2ff65 --- /dev/null +++ b/MangoPay.SDK/Entities/VirtualAccountCapabilities.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using MangoPay.SDK.Core.Enumerations; + +namespace MangoPay.SDK.Entities +{ + public class VirtualAccountCapabilities + { + public VirtualAccountCapabilities() + { + Currencies = new List(); + } + + public VirtualAccountCapabilities(bool localPayInAvailable, bool internationalPayInAvailable) + { + LocalPayInAvailable = localPayInAvailable; + InternationalPayInAvailable = internationalPayInAvailable; + Currencies = new List(); + } + + private bool LocalPayInAvailable { get; set; } + + private bool InternationalPayInAvailable { get; set; } + + public List Currencies; + } +} \ No newline at end of file From 79c546a430d8b590c3f4043f7b19b03a2dca423b Mon Sep 17 00:00:00 2001 From: alexandrumatei Date: Thu, 9 Jan 2025 12:11:32 +0200 Subject: [PATCH 2/4] Adds VA endpoints --- MangoPay.SDK.Tests/ApiVirtualAccountsTest.cs | 69 +++++++++++++++++++ MangoPay.SDK.Tests/BaseTest.cs | 17 +++++ MangoPay.SDK/Core/APIs/ApiBase.cs | 6 ++ MangoPay.SDK/Core/APIs/ApiVirtualAccounts.cs | 58 ++++++++++++++++ MangoPay.SDK/Core/Enumerations/MethodKey.cs | 8 ++- MangoPay.SDK/Entities/LocalAccountDetails.cs | 2 +- .../Entities/PUT/VirtualAccountPutDTO.cs | 9 ++- .../Entities/VirtualAccountAvailabilities.cs | 2 +- MangoPay.SDK/MangoPayApi.cs | 3 + 9 files changed, 169 insertions(+), 5 deletions(-) create mode 100644 MangoPay.SDK.Tests/ApiVirtualAccountsTest.cs create mode 100644 MangoPay.SDK/Core/APIs/ApiVirtualAccounts.cs diff --git a/MangoPay.SDK.Tests/ApiVirtualAccountsTest.cs b/MangoPay.SDK.Tests/ApiVirtualAccountsTest.cs new file mode 100644 index 00000000..30853f5f --- /dev/null +++ b/MangoPay.SDK.Tests/ApiVirtualAccountsTest.cs @@ -0,0 +1,69 @@ +using System.Threading.Tasks; +using NUnit.Framework; + +namespace MangoPay.SDK.Tests +{ + [TestFixture] + public class ApiVirtualAccountsTest : BaseTest + { + [Test] + public async Task Test_VirtualAccounts_Create() + { + var wallet = await GetJohnsWallet(); + var virtualAccount = await GetJohnsVirtualAccount(); + + Assert.IsNotNull(virtualAccount); + Assert.AreEqual(virtualAccount.WalletId, wallet.Id); + } + + [Test] + public async Task Test_VirtualAccounts_Get() + { + var virtualAccount = await GetJohnsVirtualAccount(); + var wallet = await GetJohnsWallet(); + + var fetchedVirtualAccount = await Api.VirtualAccounts.GetAsync(wallet.Id, virtualAccount.Id); + + Assert.IsNotNull(fetchedVirtualAccount); + Assert.AreEqual(fetchedVirtualAccount.Id, virtualAccount.Id); + Assert.AreSame(virtualAccount, fetchedVirtualAccount); + } + + [Test] + public async Task Test_VirtualAccounts_GetAll() + { + var virtualAccount = await GetJohnsVirtualAccount(); + var wallet = await GetJohnsWallet(); + + var virtualAccounts = await Api.VirtualAccounts.GetAllAsync(wallet.Id); + + Assert.IsNotNull(virtualAccounts); + Assert.AreEqual(1, virtualAccounts.Count); + Assert.AreEqual(virtualAccount.Id, virtualAccounts[0].Id); + } + + [Test] + public async Task Test_VirtualAccounts_GetAvailabilities() + { + var availabilities = await Api.VirtualAccounts.GetAvailabilitiesAsync(); + + Assert.IsNotNull(availabilities); + Assert.IsTrue(availabilities.Collection.GetType().IsArray); + Assert.IsTrue(availabilities.UserOwned.GetType().IsArray); + Assert.IsNotEmpty(availabilities.Collection); + Assert.IsNotEmpty(availabilities.UserOwned); + } + + [Test] + public async Task Test_VirtualAccounts_Deactivate() + { + var virtualAccount = await GetJohnsVirtualAccount(); + var wallet = await GetJohnsWallet(); + var deactivatedVirtualAccount = await Api.VirtualAccounts.DeactivateAsync(wallet.Id, virtualAccount.Id); + + Assert.AreEqual(virtualAccount.Id, deactivatedVirtualAccount.Id); + Assert.IsFalse(deactivatedVirtualAccount.Active); + Assert.AreEqual("CLOSED", deactivatedVirtualAccount.Status); + } + } +} \ No newline at end of file diff --git a/MangoPay.SDK.Tests/BaseTest.cs b/MangoPay.SDK.Tests/BaseTest.cs index ef3b9981..57d80c89 100644 --- a/MangoPay.SDK.Tests/BaseTest.cs +++ b/MangoPay.SDK.Tests/BaseTest.cs @@ -27,6 +27,7 @@ public abstract class BaseTest private static BankAccountIbanDTO _johnsAccount; private static WalletDTO _johnsWallet; private static WalletDTO _johnsWalletWithMoney; + private static VirtualAccountDTO _johnsVirtualAccount; private static PayInCardWebDTO _johnsPayInCardWeb; private static PayOutBankWireDTO _johnsPayOutBankWire; private static CardRegistrationDTO _johnsCardRegistration; @@ -324,6 +325,22 @@ protected async Task> GetNewJohnsWalletWithMoneyAndCard return new Tuple(card.Id, createdWallet); } + protected async Task GetJohnsVirtualAccount() + { + if (_johnsVirtualAccount != null) return _johnsVirtualAccount; + + var wallet = await GetJohnsWallet(); + var virtualAccount = new VirtualAccountPostDTO + { + Country = "FR", + VirtualAccountPurpose = "Collection", + Tag = "create virtual account tag" + }; + _johnsVirtualAccount = await Api.VirtualAccounts.CreateAsync(wallet.Id, virtualAccount); + + return _johnsVirtualAccount; + } + protected async Task GetJohnsPayInCardWeb() { if (BaseTest._johnsPayInCardWeb != null) return BaseTest._johnsPayInCardWeb; diff --git a/MangoPay.SDK/Core/APIs/ApiBase.cs b/MangoPay.SDK/Core/APIs/ApiBase.cs index a0c75cf4..3d972a60 100644 --- a/MangoPay.SDK/Core/APIs/ApiBase.cs +++ b/MangoPay.SDK/Core/APIs/ApiBase.cs @@ -239,6 +239,12 @@ public abstract class ApiBase { MethodKey.GetConversion,new ApiEndPoint("/conversions/{0}",RequestType.GET)}, { MethodKey.CreateConversionQuote,new ApiEndPoint("/conversions/quote",RequestType.POST)}, { MethodKey.GetConversionQuote, new ApiEndPoint("/conversions/quote/{0}", RequestType.GET) }, + + { MethodKey.VirtualAccountCreate, new ApiEndPoint("/wallets/{0}/virtual-accounts", RequestType.POST) }, + { MethodKey.VirtualAccountDeactivate, new ApiEndPoint("/wallets/{0}/virtual-accounts/{0}", RequestType.PUT) }, + { MethodKey.VirtualAccountGet, new ApiEndPoint("/wallets/{0}/virtual-accounts/{0}", RequestType.GET) }, + { MethodKey.VirtualAccountGetAll, new ApiEndPoint("/wallets/{0}/virtual-accounts", RequestType.GET) }, + { MethodKey.VirtualAccountGetAvailabilities, new ApiEndPoint("/virtual-accounts/availability", RequestType.GET) } }; /// Creates new API instance. diff --git a/MangoPay.SDK/Core/APIs/ApiVirtualAccounts.cs b/MangoPay.SDK/Core/APIs/ApiVirtualAccounts.cs new file mode 100644 index 00000000..c8ade978 --- /dev/null +++ b/MangoPay.SDK/Core/APIs/ApiVirtualAccounts.cs @@ -0,0 +1,58 @@ +using System.Threading.Tasks; +using MangoPay.SDK.Core.Enumerations; +using MangoPay.SDK.Entities; +using MangoPay.SDK.Entities.GET; +using MangoPay.SDK.Entities.POST; +using MangoPay.SDK.Entities.PUT; + +namespace MangoPay.SDK.Core.APIs +{ + /// API for VirtualAccounts + public class ApiVirtualAccounts : ApiBase + { + /// Instantiates new ApiVirtualAccounts object. + /// Root/parent instance that holds the OAuthToken and Configuration instance. + public ApiVirtualAccounts(MangoPayApi root) : base(root) { } + + public async Task CreateAsync(string walletId, VirtualAccountPostDTO virtualAccount, string idempotentKey = null) + { + return await this.CreateObjectAsync(MethodKey.VirtualAccountCreate, virtualAccount, idempotentKey, entitiesId: walletId); + } + + /// Gets given VirtualAccount associated with wallet + /// Wallet identifier. + /// Virtual Account identifier. + /// VirtualAccount Object + public async Task GetAsync(string walletId, string virtualAccountId) + { + return await this.GetObjectAsync(MethodKey.VirtualAccountGet, entitiesId: new[] { walletId, virtualAccountId }); + } + + /// Gets all VirtualAccounts associated with wallet + /// Wallet identifier. + /// Pagination. + /// Filter. + /// Sort. + /// All related Virtual Account Object + public async Task> GetAllAsync(string walletId, Pagination pagination = null, FilterTransactions filter = null, Sort sort = null) + { + return await this.GetListAsync(MethodKey.VirtualAccountGetAll, pagination, sort, filter?.GetValues(), entitiesId: walletId); + } + + /// Deactivates given VirtualAccount + /// Wallet identifier. + /// Virtual Account identifier. + /// Deactivated VirtualAccount Object + public async Task DeactivateAsync(string walletId, string virtualAccountId) + { + return await this.UpdateObjectAsync(MethodKey.VirtualAccountDeactivate, new VirtualAccountPutDTO(), entitiesId: new[] { walletId, virtualAccountId }); + } + + /// Gets all virtual account availabilities. + /// VirtualAccountAvailabilities Object + public async Task GetAvailabilitiesAsync() + { + return await this.GetObjectAsync(MethodKey.VirtualAccountGetAvailabilities); + } + } +} \ No newline at end of file diff --git a/MangoPay.SDK/Core/Enumerations/MethodKey.cs b/MangoPay.SDK/Core/Enumerations/MethodKey.cs index 1e040f68..f9d16693 100644 --- a/MangoPay.SDK/Core/Enumerations/MethodKey.cs +++ b/MangoPay.SDK/Core/Enumerations/MethodKey.cs @@ -197,6 +197,12 @@ public enum MethodKey GetConversion, CreateConversionQuote, GetConversionQuote, - PayInsAddTrackingInformation + PayInsAddTrackingInformation, + + VirtualAccountCreate, + VirtualAccountGet, + VirtualAccountGetAll, + VirtualAccountDeactivate, + VirtualAccountGetAvailabilities, } } diff --git a/MangoPay.SDK/Entities/LocalAccountDetails.cs b/MangoPay.SDK/Entities/LocalAccountDetails.cs index 54665de6..c78008b1 100644 --- a/MangoPay.SDK/Entities/LocalAccountDetails.cs +++ b/MangoPay.SDK/Entities/LocalAccountDetails.cs @@ -1,6 +1,6 @@ namespace MangoPay.SDK.Entities { - public class LocalAccountDetails : EntityBase + public class LocalAccountDetails { public VirtualAccountAddress Address { get; set; } diff --git a/MangoPay.SDK/Entities/PUT/VirtualAccountPutDTO.cs b/MangoPay.SDK/Entities/PUT/VirtualAccountPutDTO.cs index 12ef96e3..160d2ecd 100644 --- a/MangoPay.SDK/Entities/PUT/VirtualAccountPutDTO.cs +++ b/MangoPay.SDK/Entities/PUT/VirtualAccountPutDTO.cs @@ -4,9 +4,14 @@ namespace MangoPay.SDK.Entities.PUT { public class VirtualAccountPutDTO : EntityPutBase { - public VirtualAccountPutDTO(string status) + public VirtualAccountPutDTO() { - Status = status; + + } + + public VirtualAccountPutDTO(bool active) + { + Active = active; } public string WalletId { get; set; } diff --git a/MangoPay.SDK/Entities/VirtualAccountAvailabilities.cs b/MangoPay.SDK/Entities/VirtualAccountAvailabilities.cs index cf08af2a..a272f4e7 100644 --- a/MangoPay.SDK/Entities/VirtualAccountAvailabilities.cs +++ b/MangoPay.SDK/Entities/VirtualAccountAvailabilities.cs @@ -2,7 +2,7 @@ namespace MangoPay.SDK.Entities { - public class VirtualAccountAvailabilities + public class VirtualAccountAvailabilities : EntityBase { public VirtualAccountAvailabilities() { diff --git a/MangoPay.SDK/MangoPayApi.cs b/MangoPay.SDK/MangoPayApi.cs index 65855d59..1b95b95f 100644 --- a/MangoPay.SDK/MangoPayApi.cs +++ b/MangoPay.SDK/MangoPayApi.cs @@ -43,6 +43,7 @@ public MangoPayApi() Regulatory = new ApiRegulatory(this); Deposits = new ApiDeposits(this); Conversions = new ApiConversions(this); + VirtualAccounts = new ApiVirtualAccounts(this); } /// Provides authorization token methods. @@ -127,6 +128,8 @@ public MangoPayApi() public ApiConversions Conversions; + public ApiVirtualAccounts VirtualAccounts; + #endregion #region Internal and private From 4389c2d9ea12139cabc292c20528503e1e342cf3 Mon Sep 17 00:00:00 2001 From: alexandrumatei Date: Thu, 9 Jan 2025 15:57:27 +0200 Subject: [PATCH 3/4] Fixes DTO scopes --- MangoPay.SDK/Core/APIs/ApiVirtualAccounts.cs | 6 ++-- .../VirtualAccountAvailabilitiesDTO.cs} | 6 ++-- .../Entities/PUT/VirtualAccountPutDTO.cs | 30 ------------------- 3 files changed, 6 insertions(+), 36 deletions(-) rename MangoPay.SDK/Entities/{VirtualAccountAvailabilities.cs => GET/VirtualAccountAvailabilitiesDTO.cs} (68%) diff --git a/MangoPay.SDK/Core/APIs/ApiVirtualAccounts.cs b/MangoPay.SDK/Core/APIs/ApiVirtualAccounts.cs index c8ade978..b5b13560 100644 --- a/MangoPay.SDK/Core/APIs/ApiVirtualAccounts.cs +++ b/MangoPay.SDK/Core/APIs/ApiVirtualAccounts.cs @@ -45,14 +45,14 @@ public async Task> GetAllAsync(string walletId, /// Deactivated VirtualAccount Object public async Task DeactivateAsync(string walletId, string virtualAccountId) { - return await this.UpdateObjectAsync(MethodKey.VirtualAccountDeactivate, new VirtualAccountPutDTO(), entitiesId: new[] { walletId, virtualAccountId }); + return await this.UpdateObjectAsync(methodKey: MethodKey.VirtualAccountDeactivate, entity: new VirtualAccountPutDTO(), entitiesId: new[] { walletId, virtualAccountId }); } /// Gets all virtual account availabilities. /// VirtualAccountAvailabilities Object - public async Task GetAvailabilitiesAsync() + public async Task GetAvailabilitiesAsync() { - return await this.GetObjectAsync(MethodKey.VirtualAccountGetAvailabilities); + return await this.GetObjectAsync(MethodKey.VirtualAccountGetAvailabilities); } } } \ No newline at end of file diff --git a/MangoPay.SDK/Entities/VirtualAccountAvailabilities.cs b/MangoPay.SDK/Entities/GET/VirtualAccountAvailabilitiesDTO.cs similarity index 68% rename from MangoPay.SDK/Entities/VirtualAccountAvailabilities.cs rename to MangoPay.SDK/Entities/GET/VirtualAccountAvailabilitiesDTO.cs index a272f4e7..5a1e3c20 100644 --- a/MangoPay.SDK/Entities/VirtualAccountAvailabilities.cs +++ b/MangoPay.SDK/Entities/GET/VirtualAccountAvailabilitiesDTO.cs @@ -1,10 +1,10 @@ using System.Collections.Generic; -namespace MangoPay.SDK.Entities +namespace MangoPay.SDK.Entities.GET { - public class VirtualAccountAvailabilities : EntityBase + public class VirtualAccountAvailabilitiesDTO : EntityBase { - public VirtualAccountAvailabilities() + public VirtualAccountAvailabilitiesDTO() { Collection = new List(); UserOwned = new List(); diff --git a/MangoPay.SDK/Entities/PUT/VirtualAccountPutDTO.cs b/MangoPay.SDK/Entities/PUT/VirtualAccountPutDTO.cs index 160d2ecd..59b614b8 100644 --- a/MangoPay.SDK/Entities/PUT/VirtualAccountPutDTO.cs +++ b/MangoPay.SDK/Entities/PUT/VirtualAccountPutDTO.cs @@ -1,37 +1,7 @@ -using System.Collections.Generic; - namespace MangoPay.SDK.Entities.PUT { public class VirtualAccountPutDTO : EntityPutBase { - public VirtualAccountPutDTO() - { - - } - - public VirtualAccountPutDTO(bool active) - { - Active = active; - } - public string WalletId { get; set; } - - public string CreditedUserId { get; set; } - - public string VirtualAccountPurpose { get; set; } - - public string Country { get; set; } - - public string Status { get; set; } - - public bool Active { get; set; } - - public string AccountOwner { get; set; } - - public LocalAccountDetails LocalAccountDetails { get; set; } - - public List InternationalAccountDetails { get; set; } - - public VirtualAccountCapabilities Capabilities { get; set; } } } \ No newline at end of file From ba9a1be67a8d05426409765f7965d90d5ae4fcbb Mon Sep 17 00:00:00 2001 From: alexandrumatei Date: Fri, 10 Jan 2025 16:10:37 +0200 Subject: [PATCH 4/4] Fixes issue in endpoints --- MangoPay.SDK.Tests/ApiVirtualAccountsTest.cs | 1 - MangoPay.SDK/Core/APIs/ApiBase.cs | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/MangoPay.SDK.Tests/ApiVirtualAccountsTest.cs b/MangoPay.SDK.Tests/ApiVirtualAccountsTest.cs index 30853f5f..5bed7f42 100644 --- a/MangoPay.SDK.Tests/ApiVirtualAccountsTest.cs +++ b/MangoPay.SDK.Tests/ApiVirtualAccountsTest.cs @@ -26,7 +26,6 @@ public async Task Test_VirtualAccounts_Get() Assert.IsNotNull(fetchedVirtualAccount); Assert.AreEqual(fetchedVirtualAccount.Id, virtualAccount.Id); - Assert.AreSame(virtualAccount, fetchedVirtualAccount); } [Test] diff --git a/MangoPay.SDK/Core/APIs/ApiBase.cs b/MangoPay.SDK/Core/APIs/ApiBase.cs index 3d972a60..cab6b4a1 100644 --- a/MangoPay.SDK/Core/APIs/ApiBase.cs +++ b/MangoPay.SDK/Core/APIs/ApiBase.cs @@ -241,8 +241,8 @@ public abstract class ApiBase { MethodKey.GetConversionQuote, new ApiEndPoint("/conversions/quote/{0}", RequestType.GET) }, { MethodKey.VirtualAccountCreate, new ApiEndPoint("/wallets/{0}/virtual-accounts", RequestType.POST) }, - { MethodKey.VirtualAccountDeactivate, new ApiEndPoint("/wallets/{0}/virtual-accounts/{0}", RequestType.PUT) }, - { MethodKey.VirtualAccountGet, new ApiEndPoint("/wallets/{0}/virtual-accounts/{0}", RequestType.GET) }, + { MethodKey.VirtualAccountDeactivate, new ApiEndPoint("/wallets/{0}/virtual-accounts/{1}", RequestType.PUT) }, + { MethodKey.VirtualAccountGet, new ApiEndPoint("/wallets/{0}/virtual-accounts/{1}", RequestType.GET) }, { MethodKey.VirtualAccountGetAll, new ApiEndPoint("/wallets/{0}/virtual-accounts", RequestType.GET) }, { MethodKey.VirtualAccountGetAvailabilities, new ApiEndPoint("/virtual-accounts/availability", RequestType.GET) } };