| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #if !DISABLE_SRDEBUGGER
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- using System.Net;
- using System.Net.Cache;
- using System.Text;
- using SRF;
- using UnityEngine;
- using SRDebugger.Internal;
- namespace SRDebugger.Editor
- {
- 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;
- }
- }
- }
- #endif
|