private IRestRequest AddDefaultHeaders(IRestRequest rawRequest) { rawRequest.AddHeader(Backtory.GameInstanceIdString, BacktoryConfig.BacktoryGameInstanceId); rawRequest.AddHeader(BacktoryUser.KeyAuthorization, BacktoryUser.AuthorizationHeader()); rawRequest.AddHeader("Accept", Backtory.ApplicationJson); return(rawRequest); }
private IRestRequest SendEventRequest(BacktoryGameEvent backtoryGameEvent) { var request = Backtory.RestRequest("game/events", Method.POST); request.AddHeader(Backtory.GameInstanceIdString, BacktoryConfig.BacktoryGameInstanceId); request.AddHeader(BacktoryUser.KeyAuthorization, BacktoryUser.AuthorizationHeader()); request.AddHeader("Accept", Backtory.ApplicationJson); request.AddJsonBody(backtoryGameEvent); return(request); }
// all methods could be static but we get a threading exception from PlayerPrefs /* GetString can only be called from the main thread. * Constructors and field initializers will be executed from the loading thread when loading a scene. * Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function. */ private IRestRequest CloudCodeRequest(string functionName, object requestBody, Type responseType) { var request = Backtory.RestRequest("cloud-code/{cloud_instance_id}/{function_name}", Method.POST); request.Timeout = 20 * 1000; // 20 seconds request.AddParameter("cloud_instance_id", BacktoryConfig.BacktoryCloudcodeInstanceId, ParameterType.UrlSegment); request.AddParameter("function_name", functionName, ParameterType.UrlSegment); request.AddHeader(BacktoryUser.KeyAuthorization, BacktoryUser.AuthorizationHeader()); if (requestBody.GetType() != typeof(string)) { request.AddJsonBody(requestBody); request.OnBeforeDeserialization = irestresponse => irestresponse.ContentType = Backtory.ApplicationJson; } else { request.AddParameter(Backtory.TextPlain, requestBody, ParameterType.RequestBody); request.OnBeforeDeserialization = irestresponse => irestresponse.ContentType = Backtory.TextPlain; } return(request); }