@@ -155,6 +155,22 @@ public async Task<Auth> Login(NameValueCollection queryParams)
155
155
return this ;
156
156
}
157
157
158
+ public async Task < Auth > Save ( )
159
+ {
160
+ var uploadData = new IndexedDictionary < string , string > ( ) ;
161
+ if ( ! string . IsNullOrEmpty ( Username ) ) uploadData [ "username" ] = Username ;
162
+ if ( ! string . IsNullOrEmpty ( DisplayName ) ) uploadData [ "displayName" ] = DisplayName ;
163
+ if ( ! string . IsNullOrEmpty ( AvatarUrl ) ) uploadData [ "avatarUrl" ] = AvatarUrl ;
164
+ if ( ! string . IsNullOrEmpty ( Lang ) ) uploadData [ "lang" ] = Lang ;
165
+ if ( ! string . IsNullOrEmpty ( Location ) ) uploadData [ "location" ] = Location ;
166
+ if ( ! string . IsNullOrEmpty ( Timezone ) ) uploadData [ "timezone" ] = Timezone ;
167
+
168
+ var bodyString = Json . SerializeToString ( uploadData ) ;
169
+ await Request < UserData > ( "PUT" , "/auth" , null , new UploadHandlerRaw ( Encoding . UTF8 . GetBytes ( bodyString ) ) ) ;
170
+
171
+ return this ;
172
+ }
173
+
158
174
public async Task < UserData [ ] > GetFriends ( )
159
175
{
160
176
return await Request < UserData [ ] > ( "GET" , "/friends/all" ) ;
@@ -211,7 +227,7 @@ public void Logout()
211
227
PlayerPrefs . SetString ( "Token" , Token ) ;
212
228
}
213
229
214
- protected async Task < T > Request < T > ( string method , string segments , NameValueCollection query = null )
230
+ protected async Task < T > Request < T > ( string method , string segments , NameValueCollection query = null , UploadHandlerRaw data = null )
215
231
{
216
232
if ( query == null )
217
233
{
@@ -231,6 +247,13 @@ protected async Task<T> Request<T>(string method, string segments, NameValueColl
231
247
// FIXME: replacing "ws" with "http" is too hacky!
232
248
req . url = uriBuilder . Uri . ToString ( ) . Replace ( "ws" , "http" ) ;
233
249
250
+ // Send JSON on request body
251
+ if ( data != null )
252
+ {
253
+ req . uploadHandler = data ;
254
+ req . SetRequestHeader ( "Content-Type" , "application/json" ) ;
255
+ }
256
+
234
257
// Request headers
235
258
req . SetRequestHeader ( "Accept" , "application/json" ) ;
236
259
if ( HasToken ) req . SetRequestHeader ( "Authorization" , "Bearer " + Token ) ;
0 commit comments