-
Notifications
You must be signed in to change notification settings - Fork 573
/
Copy pathStripeSourceService.cs
executable file
·105 lines (83 loc) · 4.68 KB
/
StripeSourceService.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
using System.Threading;
using System.Threading.Tasks;
using Stripe.Infrastructure;
namespace Stripe
{
public class StripeSourceService : StripeBasicService<StripeSource>
{
public StripeSourceService(string apiKey = null) : base(apiKey) { }
// Sync
public virtual StripeSource Create(StripeSourceCreateOptions options, StripeRequestOptions requestOptions = null)
{
return Post($"{Urls.BaseUrl}/sources", requestOptions, options);
}
public virtual StripeSource Get(string sourceId, StripeRequestOptions requestOptions = null)
{
return GetEntity($"{Urls.BaseUrl}/sources/{sourceId}", requestOptions);
}
public virtual StripeSource Update(string sourceId, StripeSourceUpdateOptions options, StripeRequestOptions requestOptions = null)
{
return Post($"{Urls.BaseUrl}/sources/{sourceId}", requestOptions, options);
}
public virtual StripeSource Attach(string customerId, StripeSourceAttachOptions attachOptions, StripeRequestOptions requestOptions = null)
{
return Post($"{Urls.BaseUrl}/customers/{customerId}/sources", requestOptions, attachOptions);
}
public virtual StripeSource Detach(string customerId, string sourceId, StripeRequestOptions requestOptions = null)
{
var url = $"{Urls.BaseUrl}/customers/{customerId}/sources/{sourceId}";
return Mapper<StripeSource>.MapFromJson(
Requestor.Delete(url, SetupRequestOptions(requestOptions))
);
}
public virtual StripeList<StripeSource> List(string customerId, StripeSourceListOptions listOptions = null, StripeRequestOptions requestOptions = null)
{
var url = string.Format(Urls.CustomerSources, customerId);
if (listOptions == null) {
listOptions = new StripeSourceListOptions();
}
return Mapper<StripeList<StripeSource>>.MapFromJson(
Requestor.GetString(this.ApplyAllParameters(listOptions, url, true),
SetupRequestOptions(requestOptions))
);
}
// Async
public virtual Task<StripeSource> CreateAsync(StripeSourceCreateOptions options, StripeRequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
{
return PostAsync($"{Urls.BaseUrl}/sources", requestOptions, cancellationToken, options);
}
public virtual Task<StripeSource> GetAsync(string sourceId, StripeRequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
{
return GetEntityAsync($"{Urls.BaseUrl}/sources/{sourceId}", requestOptions, cancellationToken);
}
public virtual Task<StripeSource> UpdateAsync(string sourceId, StripeSourceUpdateOptions options, StripeRequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
{
return PostAsync($"{Urls.BaseUrl}/sources/{sourceId}", requestOptions, cancellationToken, options);
}
public virtual Task<StripeSource> AttachAsync(string customerId, StripeSourceAttachOptions options, StripeRequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
{
return PostAsync($"{Urls.BaseUrl}/customers/{customerId}/sources", requestOptions, cancellationToken, options);
}
public virtual async Task<StripeSource> DetachAsync(string customerId, string sourceId, StripeRequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
{
var url = $"{Urls.BaseUrl}/customers/{customerId}/sources/{sourceId}";
return Mapper<StripeSource>.MapFromJson(
await Requestor.DeleteAsync(url,
SetupRequestOptions(requestOptions),
cancellationToken)
);
}
public virtual async Task<StripeList<StripeSource>> ListAsync(string customerId, StripeSourceListOptions listOptions = null, StripeRequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
{
var url = string.Format(Urls.CustomerSources, customerId);
if (listOptions == null) {
listOptions = new StripeSourceListOptions();
}
return Mapper<StripeList<StripeSource>>.MapFromJson(
await Requestor.GetStringAsync(this.ApplyAllParameters(listOptions, url, true),
SetupRequestOptions(requestOptions),
cancellationToken)
);
}
}
}