97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections; | |||
|  | using System.Collections.Generic; | |||
|  | using System.IO; | |||
|  | using System.Net; | |||
|  | using System.Net.Cache; | |||
|  | using System.Text; | |||
|  | using SRDebugger.Internal; | |||
|  | using SRF; | |||
|  | using UnityEngine; | |||
|  | 
 | |||
|  | namespace SRDebugger.Editor | |||
|  | { | |||
|  |     public static class ApiSignup | |||
|  |     { | |||
|  |         public delegate void ApiSignupResultCallback(bool success, string apiKey, string email, string error); | |||
|  | 
 | |||
|  |         public static void SignUp(string email, string invoiceNo, ApiSignupResultCallback resultCallback) | |||
|  |         { | |||
|  |             var requestData = new Hashtable(); | |||
|  |             requestData["emailAddress"] = email; | |||
|  |             requestData["transactionNumber"] = invoiceNo; | |||
|  | 
 | |||
|  |             try | |||
|  |             { | |||
|  |                 var request = SendRequest(SRDebugApi.EndPoint + "/user/create", requestData, WebRequestMethods.Http.Post); | |||
|  | 
 | |||
|  |                 string result; | |||
|  | 
 | |||
|  |                 var didSucceed = SRDebugApiUtil.ReadResponse(request, out result); | |||
|  | 
 | |||
|  |                 if (didSucceed) | |||
|  |                 { | |||
|  |                     var jsonTable = (Dictionary<string, object>) Json.Deserialize(result); | |||
|  | 
 | |||
|  |                     resultCallback(true, (string) jsonTable["apiKey"], (string) jsonTable["emailAddress"], null); | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     resultCallback(false, null, null, SRDebugApiUtil.ParseErrorResponse(result)); | |||
|  |                 } | |||
|  |             } | |||
|  |             catch (Exception e) | |||
|  |             { | |||
|  |                 Debug.LogException(e); | |||
|  |                 resultCallback(false, null, null, "Internal Error (" + e.Message + ")"); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         public static string Verify(string apiKey) | |||
|  |         { | |||
|  |             var request = SendRequest(SRDebugApi.EndPoint + "/user/test", null, apiKey: apiKey); | |||
|  | 
 | |||
|  |             string result; | |||
|  | 
 | |||
|  |             SRDebugApiUtil.ReadResponse(request, out result); | |||
|  | 
 | |||
|  |             return result; | |||
|  |         } | |||
|  | 
 | |||
|  |         private static HttpWebRequest SendRequest(string endpoint, Hashtable data, | |||
|  |             string method = WebRequestMethods.Http.Get, string apiKey = null) | |||
|  |         { | |||
|  |             var request = (HttpWebRequest) WebRequest.Create(endpoint); | |||
|  |             request.Timeout = 15000; | |||
|  |             request.Method = method; | |||
|  | 
 | |||
|  |             request.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.BypassCache); | |||
|  | 
 | |||
|  |             request.ContentType = "application/json"; | |||
|  |             request.Accept = "application/json"; | |||
|  | 
 | |||
|  |             if (!string.IsNullOrEmpty(apiKey)) | |||
|  |             { | |||
|  |                 request.Headers.Add("X-ApiKey", apiKey); | |||
|  |             } | |||
|  | 
 | |||
|  |             request.KeepAlive = false; | |||
|  | 
 | |||
|  |             if (data != null) | |||
|  |             { | |||
|  |                 var requestJson = Json.Serialize(data); | |||
|  | 
 | |||
|  |                 using (var requestStream = request.GetRequestStream()) | |||
|  |                 { | |||
|  |                     using (var writer = new StreamWriter(requestStream, Encoding.UTF8)) | |||
|  |                     { | |||
|  |                         writer.Write(requestJson); | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  | 
 | |||
|  |             return request; | |||
|  |         } | |||
|  |     } | |||
|  | } |