forked from Adyen/adyen-dotnet-api-library
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPaymentLinksService.cs
130 lines (114 loc) · 7.37 KB
/
PaymentLinksService.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
* Adyen Checkout API
*
*
* The version of the OpenAPI document: 70
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Adyen.Model;
using Adyen.Model.Checkout;
namespace Adyen.Service.Checkout
{
/// <summary>
/// PaymentLinksService Interface
/// </summary>
public interface IPaymentLinksService
{
/// <summary>
/// Get a payment link
/// </summary>
/// <param name="linkId"><see cref="string"/> - Unique identifier of the payment link.</param>
/// <param name="requestOptions"><see cref="RequestOptions"/> - Additional request options.</param>
/// <returns><see cref="PaymentLinkResponse"/>.</returns>
Model.Checkout.PaymentLinkResponse GetPaymentLink(string linkId, RequestOptions requestOptions = default);
/// <summary>
/// Get a payment link
/// </summary>
/// <param name="linkId"><see cref="string"/> - Unique identifier of the payment link.</param>
/// <param name="requestOptions"><see cref="RequestOptions"/> - Additional request options.</param>
/// <param name="cancellationToken"> A CancellationToken enables cooperative cancellation between threads, thread pool work items, or Task objects.</param>
/// <returns>Task of <see cref="PaymentLinkResponse"/>.</returns>
Task<Model.Checkout.PaymentLinkResponse> GetPaymentLinkAsync(string linkId, RequestOptions requestOptions = default, CancellationToken cancellationToken = default);
/// <summary>
/// Update the status of a payment link
/// </summary>
/// <param name="linkId"><see cref="string"/> - Unique identifier of the payment link.</param>
/// <param name="updatePaymentLinkRequest"><see cref="UpdatePaymentLinkRequest"/> - </param>
/// <param name="requestOptions"><see cref="RequestOptions"/> - Additional request options.</param>
/// <returns><see cref="PaymentLinkResponse"/>.</returns>
Model.Checkout.PaymentLinkResponse UpdatePaymentLink(string linkId, UpdatePaymentLinkRequest updatePaymentLinkRequest = default, RequestOptions requestOptions = default);
/// <summary>
/// Update the status of a payment link
/// </summary>
/// <param name="linkId"><see cref="string"/> - Unique identifier of the payment link.</param>
/// <param name="updatePaymentLinkRequest"><see cref="UpdatePaymentLinkRequest"/> - </param>
/// <param name="requestOptions"><see cref="RequestOptions"/> - Additional request options.</param>
/// <param name="cancellationToken"> A CancellationToken enables cooperative cancellation between threads, thread pool work items, or Task objects.</param>
/// <returns>Task of <see cref="PaymentLinkResponse"/>.</returns>
Task<Model.Checkout.PaymentLinkResponse> UpdatePaymentLinkAsync(string linkId, UpdatePaymentLinkRequest updatePaymentLinkRequest = default, RequestOptions requestOptions = default, CancellationToken cancellationToken = default);
/// <summary>
/// Create a payment link
/// </summary>
/// <param name="paymentLinkRequest"><see cref="PaymentLinkRequest"/> - </param>
/// <param name="requestOptions"><see cref="RequestOptions"/> - Additional request options.</param>
/// <returns><see cref="PaymentLinkResponse"/>.</returns>
Model.Checkout.PaymentLinkResponse PaymentLinks(PaymentLinkRequest paymentLinkRequest = default, RequestOptions requestOptions = default);
/// <summary>
/// Create a payment link
/// </summary>
/// <param name="paymentLinkRequest"><see cref="PaymentLinkRequest"/> - </param>
/// <param name="requestOptions"><see cref="RequestOptions"/> - Additional request options.</param>
/// <param name="cancellationToken"> A CancellationToken enables cooperative cancellation between threads, thread pool work items, or Task objects.</param>
/// <returns>Task of <see cref="PaymentLinkResponse"/>.</returns>
Task<Model.Checkout.PaymentLinkResponse> PaymentLinksAsync(PaymentLinkRequest paymentLinkRequest = default, RequestOptions requestOptions = default, CancellationToken cancellationToken = default);
}
/// <summary>
/// Represents a collection of functions to interact with the PaymentLinksService API endpoints
/// </summary>
public class PaymentLinksService : AbstractService, IPaymentLinksService
{
private readonly string _baseUrl;
public PaymentLinksService(Client client) : base(client)
{
_baseUrl = CreateBaseUrl("https://checkout-test.adyen.com/v70");
}
public Model.Checkout.PaymentLinkResponse GetPaymentLink(string linkId, RequestOptions requestOptions = default)
{
return GetPaymentLinkAsync(linkId, requestOptions).ConfigureAwait(false).GetAwaiter().GetResult();
}
public async Task<Model.Checkout.PaymentLinkResponse> GetPaymentLinkAsync(string linkId, RequestOptions requestOptions = default, CancellationToken cancellationToken = default)
{
var endpoint = _baseUrl + $"/paymentLinks/{linkId}";
var resource = new ServiceResource(this, endpoint);
return await resource.RequestAsync<Model.Checkout.PaymentLinkResponse>(null, requestOptions, new HttpMethod("GET"), cancellationToken).ConfigureAwait(false);
}
public Model.Checkout.PaymentLinkResponse UpdatePaymentLink(string linkId, UpdatePaymentLinkRequest updatePaymentLinkRequest = default, RequestOptions requestOptions = default)
{
return UpdatePaymentLinkAsync(linkId, updatePaymentLinkRequest, requestOptions).ConfigureAwait(false).GetAwaiter().GetResult();
}
public async Task<Model.Checkout.PaymentLinkResponse> UpdatePaymentLinkAsync(string linkId, UpdatePaymentLinkRequest updatePaymentLinkRequest = default, RequestOptions requestOptions = default, CancellationToken cancellationToken = default)
{
var endpoint = _baseUrl + $"/paymentLinks/{linkId}";
var resource = new ServiceResource(this, endpoint);
return await resource.RequestAsync<Model.Checkout.PaymentLinkResponse>(updatePaymentLinkRequest.ToJson(), requestOptions, new HttpMethod("PATCH"), cancellationToken).ConfigureAwait(false);
}
public Model.Checkout.PaymentLinkResponse PaymentLinks(PaymentLinkRequest paymentLinkRequest = default, RequestOptions requestOptions = default)
{
return PaymentLinksAsync(paymentLinkRequest, requestOptions).ConfigureAwait(false).GetAwaiter().GetResult();
}
public async Task<Model.Checkout.PaymentLinkResponse> PaymentLinksAsync(PaymentLinkRequest paymentLinkRequest = default, RequestOptions requestOptions = default, CancellationToken cancellationToken = default)
{
var endpoint = _baseUrl + "/paymentLinks";
var resource = new ServiceResource(this, endpoint);
return await resource.RequestAsync<Model.Checkout.PaymentLinkResponse>(paymentLinkRequest.ToJson(), requestOptions, new HttpMethod("POST"), cancellationToken).ConfigureAwait(false);
}
}
}