1
+ // Copyright 2022 - 2023 Godwin peter .O ([email protected] )
2
+ //
3
+ // Licensed under the MIT License;
4
+ // you may not use this file except in compliance with the License.
5
+ // Unless required by applicable law or agreed to in writing, software
6
+ // distributed under the License is distributed on an "AS IS" BASIS,
7
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
8
+ // See the License for the specific language governing permissions and
9
+ // limitations under the License.
10
+
11
+ using Proton . Common . Extensions ;
12
+ using Proton . Common . Filters ;
13
+
14
+ namespace Proton . Common . Http ;
15
+
16
+ public abstract class HttpService ( HttpClient http ) : BaseHttpService ( http ) , IHttpService {
17
+ public async Task < T > Get < T > ( string uri ) {
18
+ var request = new HttpRequestMessage ( HttpMethod . Get , uri ) ;
19
+ return await SendRequest < T > ( request ) ;
20
+ }
21
+
22
+ public async Task < T > Get < T > ( string uri , object ? query ) {
23
+ string queries = query != null ? query . GetQueryString ( ) : ( new PageFilter ( ) ) . GetQueryString ( ) ;
24
+ var url = uri + queries ;
25
+ var request = new HttpRequestMessage ( HttpMethod . Get , url ) ;
26
+ return await SendRequest < T > ( request ) ;
27
+ }
28
+
29
+ public async Task Post ( string uri , object ? value ) {
30
+ var request = CreateRequest ( HttpMethod . Post , uri , value ) ;
31
+ await SendRequest ( request ) ;
32
+ }
33
+
34
+ public async Task < T > Post < T > ( string uri ) {
35
+ var request = CreateRequest ( HttpMethod . Post , uri ) ;
36
+ return await SendRequest < T > ( request ) ;
37
+ }
38
+
39
+ public async Task < T > Post < T > ( string uri , object ? value ) {
40
+ var request = CreateRequest ( HttpMethod . Post , uri , value ) ;
41
+ return await SendRequest < T > ( request ) ;
42
+ }
43
+
44
+ public async Task Put ( string uri , object ? value ) {
45
+ var request = CreateRequest ( HttpMethod . Put , uri , value ) ;
46
+ await SendRequest ( request ) ;
47
+ }
48
+
49
+ public async Task < T > Put < T > ( string uri ) {
50
+ var request = CreateRequest ( HttpMethod . Put , uri ) ;
51
+ return await SendRequest < T > ( request ) ;
52
+ }
53
+
54
+ public async Task < T > Put < T > ( string uri , object ? value ) {
55
+ var request = CreateRequest ( HttpMethod . Put , uri , value ) ;
56
+ return await SendRequest < T > ( request ) ;
57
+ }
58
+
59
+ public async Task Delete ( string uri ) {
60
+ var request = CreateRequest ( HttpMethod . Delete , uri ) ;
61
+ await SendRequest ( request ) ;
62
+ }
63
+
64
+ public async Task < T > Delete < T > ( string uri ) {
65
+ var request = CreateRequest ( HttpMethod . Delete , uri ) ;
66
+ return await SendRequest < T > ( request ) ;
67
+ }
68
+
69
+ public async Task < T > Delete < T > ( string uri , ICollection ? values ) {
70
+ var request = CreateRequest ( HttpMethod . Delete , uri , values ) ;
71
+ return await SendRequest < T > ( request ) ;
72
+ }
73
+ }
0 commit comments