7
7
using ServiceStack . Text ;
8
8
using ServiceStack . Web ;
9
9
10
- namespace Apps . ServiceInterface
10
+ namespace Apps . ServiceInterface ;
11
+
12
+ public class AppServices : Service
11
13
{
12
- public class AppServices : Service
13
- {
14
- public Sites Sites { get ; set ; }
14
+ public Sites Sites { get ; set ; }
15
15
16
- public async Task < object > Get ( GetSiteInfoLanguages request )
17
- {
18
- if ( string . IsNullOrEmpty ( request . BaseUrl ) && string . IsNullOrEmpty ( request . Slug ) )
19
- throw new ArgumentNullException ( nameof ( request . BaseUrl ) ) ;
16
+ public async Task < object > Get ( GetSiteInfoLanguages request )
17
+ {
18
+ if ( string . IsNullOrEmpty ( request . BaseUrl ) && string . IsNullOrEmpty ( request . Slug ) )
19
+ throw new ArgumentNullException ( nameof ( request . BaseUrl ) ) ;
20
20
21
- var slug = request . Slug ?? SiteUtils . UrlToSlug ( request . BaseUrl ) ;
22
- var site = await Sites . GetSiteAsync ( slug ) ;
21
+ var slug = request . Slug ?? SiteUtils . UrlToSlug ( request . BaseUrl ) ;
22
+ var site = await Sites . GetSiteAsync ( slug ) ;
23
23
24
- var languageInfos = await site . Languages . GetLanguageInfosAsync ( ) ;
25
- var languages = new Dictionary < string , string > ( ) ;
26
- foreach ( var entry in languageInfos )
27
- {
28
- languages [ entry . Key ] = entry . Value . Content ;
29
- }
30
- return new GetSiteInfoLanguagesResponse {
31
- BaseUrl = request . BaseUrl ?? SiteUtils . UrlFromSlug ( slug ) ,
32
- Slug = slug ,
33
- Languages = languages ,
34
- } ;
24
+ var languageInfos = await site . Languages . GetLanguageInfosAsync ( ) ;
25
+ var languages = new Dictionary < string , string > ( ) ;
26
+ foreach ( var entry in languageInfos )
27
+ {
28
+ languages [ entry . Key ] = entry . Value . Content ;
35
29
}
30
+ return new GetSiteInfoLanguagesResponse {
31
+ BaseUrl = request . BaseUrl ?? SiteUtils . UrlFromSlug ( slug ) ,
32
+ Slug = slug ,
33
+ Languages = languages ,
34
+ } ;
35
+ }
36
36
37
- // /json/reply/{Request} or /csv/reply/{Request}
38
- private string CreateSiteRequestUrl ( SiteInfo site , string requestDtoName ) =>
39
- site . BaseUrl . CombineWith ( Request . PathInfo . LastLeftPart ( '/' ) , requestDtoName ) ;
37
+ // /json/reply/{Request} or /csv/reply/{Request}
38
+ private string CreateSiteRequestUrl ( SiteInfo site , string requestDtoName ) =>
39
+ site . BaseUrl . CombineWith ( Request . PathInfo . LastLeftPart ( '/' ) , requestDtoName ) ;
40
40
41
- public async Task Any ( SiteInvoke request )
42
- {
43
- var site = await Sites . AssertSiteAsync ( request . Slug ) ;
44
- if ( request . Request == null )
45
- throw new ArgumentNullException ( nameof ( request . Request ) ) ;
41
+ public async Task Any ( SiteInvoke request )
42
+ {
43
+ var site = await Sites . AssertSiteAsync ( request . Slug ) ;
44
+ if ( request . Request == null )
45
+ throw new ArgumentNullException ( nameof ( request . Request ) ) ;
46
46
47
- var url = CreateSiteRequestUrl ( site , request . Request ) ;
48
- var qs = SiteUtils . ToUrlEncoded ( request . Args ) ;
49
- var sendInBody = HttpUtils . HasRequestBody ( Request . Verb ) ;
50
- if ( ! string . IsNullOrEmpty ( qs ) && ! sendInBody )
51
- {
52
- url += "?" + qs ;
53
- }
47
+ var url = CreateSiteRequestUrl ( site , request . Request ) ;
48
+ var qs = SiteUtils . ToUrlEncoded ( request . Args ) ;
49
+ var sendInBody = HttpUtils . HasRequestBody ( Request . Verb ) ;
50
+ if ( ! string . IsNullOrEmpty ( qs ) && ! sendInBody )
51
+ {
52
+ url += "?" + qs ;
53
+ }
54
54
55
- var webReq = CreateSiteWebRequest ( site , url ) ;
56
- ProxyFeatureHandler . InitWebRequest ( Request as IHttpRequest , webReq ) ;
55
+ var webReq = CreateSiteWebRequest ( site , url ) ;
56
+ ProxyFeatureHandler . InitWebRequest ( Request as IHttpRequest , webReq ) ;
57
57
58
- if ( ! string . IsNullOrEmpty ( qs ) && sendInBody )
59
- {
60
- webReq . ContentType = MimeTypes . FormUrlEncoded ;
61
- await using var requestStream = await webReq . GetRequestStreamAsync ( ) ;
62
- await requestStream . WriteAsync ( MemoryProvider . Instance . ToUtf8 ( qs ) ) ;
63
- }
64
-
65
- var proxy = new ProxyFeatureHandler ( ) ;
66
- await proxy . ProxyToResponse ( ( IHttpResponse ) Response , webReq ) ;
58
+ if ( ! string . IsNullOrEmpty ( qs ) && sendInBody )
59
+ {
60
+ webReq . ContentType = MimeTypes . FormUrlEncoded ;
61
+ await using var requestStream = await webReq . GetRequestStreamAsync ( ) ;
62
+ await requestStream . WriteAsync ( MemoryProvider . Instance . ToUtf8 ( qs ) ) ;
67
63
}
64
+
65
+ var proxy = new ProxyFeatureHandler ( ) ;
66
+ await proxy . ProxyToResponse ( ( IHttpResponse ) Response , webReq ) ;
67
+ }
68
68
69
- public async Task Any ( SiteProxy request )
70
- {
71
- var site = await Sites . AssertSiteAsync ( request . Slug ) ;
72
- if ( request . Request == null )
73
- throw new ArgumentNullException ( nameof ( request . Request ) ) ;
69
+ public async Task Any ( SiteProxy request )
70
+ {
71
+ var site = await Sites . AssertSiteAsync ( request . Slug ) ;
72
+ if ( request . Request == null )
73
+ throw new ArgumentNullException ( nameof ( request . Request ) ) ;
74
74
75
- var url = CreateSiteRequestUrl ( site , request . Request ) ;
76
- var qs = SiteUtils . ToUrlEncoded ( request . Query ) ;
77
- if ( ! string . IsNullOrEmpty ( qs ) )
78
- url += "?" + qs ;
75
+ var url = CreateSiteRequestUrl ( site , request . Request ) ;
76
+ var qs = SiteUtils . ToUrlEncoded ( request . Query ) ;
77
+ if ( ! string . IsNullOrEmpty ( qs ) )
78
+ url += "?" + qs ;
79
79
80
- var webReq = CreateSiteWebRequest ( site , url ) ;
80
+ var webReq = CreateSiteWebRequest ( site , url ) ;
81
81
82
- var proxy = new ProxyFeatureHandler ( ) ;
83
- await proxy . ProxyRequestAsync ( ( IHttpRequest ) Request , webReq ) ;
84
- }
82
+ var proxy = new ProxyFeatureHandler ( ) ;
83
+ await proxy . ProxyRequestAsync ( ( IHttpRequest ) Request , webReq ) ;
84
+ }
85
85
86
- private HttpWebRequest CreateSiteWebRequest ( SiteInfo siteInfo , string url )
86
+ private HttpWebRequest CreateSiteWebRequest ( SiteInfo siteInfo , string url )
87
+ {
88
+ var req = ( HttpWebRequest ) WebRequest . Create ( url ) ;
89
+ var siteSession = SessionBag . Get < SiteSession > ( ) ;
90
+ if ( siteSession != null )
87
91
{
88
- var req = ( HttpWebRequest ) WebRequest . Create ( url ) ;
89
- var siteSession = SessionBag . Get < SiteSession > ( ) ;
90
- if ( siteSession != null )
92
+ if ( siteSession . BearerToken != null )
91
93
{
92
- if ( siteSession . BearerToken != null )
93
- {
94
- req . AddBearerToken ( siteSession . BearerToken ) ;
95
- }
96
- else if ( siteSession . SessionId != null )
97
- {
98
- var overrideParam = "X-" + Keywords . SessionId ;
99
- req . Headers [ overrideParam ] = siteSession . SessionId ;
100
- }
101
- else if ( siteSession . UserName != null && siteSession . Password != null )
102
- {
103
- req . AddBasicAuth ( siteSession . UserName , siteSession . Password ) ;
104
- }
105
- else if ( siteSession . AuthSecret != null )
106
- {
107
- var overrideParam = HttpHeaders . XParamOverridePrefix + Keywords . AuthSecret ;
108
- req . Headers [ overrideParam ] = siteSession . AuthSecret ;
109
- }
94
+ req . AddBearerToken ( siteSession . BearerToken ) ;
95
+ }
96
+ else if ( siteSession . SessionId != null )
97
+ {
98
+ var overrideParam = "X-" + Keywords . SessionId ;
99
+ req . Headers [ overrideParam ] = siteSession . SessionId ;
100
+ }
101
+ else if ( siteSession . UserName != null && siteSession . Password != null )
102
+ {
103
+ req . AddBasicAuth ( siteSession . UserName , siteSession . Password ) ;
104
+ }
105
+ else if ( siteSession . AuthSecret != null )
106
+ {
107
+ var overrideParam = HttpHeaders . XParamOverridePrefix + Keywords . AuthSecret ;
108
+ req . Headers [ overrideParam ] = siteSession . AuthSecret ;
110
109
}
111
- return req ;
112
110
}
113
-
111
+ return req ;
114
112
}
115
- }
113
+
114
+ }
0 commit comments