예제 #1
0
 // Use this for initialization
 void AssetRequestPublisher.PublishAssetRequest(AssetRequest assetReq, SimpleProcessListener listener)
 {
     RequiredFuncs.ProcessHTTP(
         "https://api.taiga.io/api/v1/auth",
         (response) => {
         var auth           = RequiredFuncs.FromJson <TaigaIOUserInfo>(response);
         var headerWithAuth = new KeyValuePair <string, string>[] {
             new KeyValuePair <string, string>("Content-Type", "application/json"),
             new KeyValuePair <string, string>("Authorization", "Bearer " + auth.auth_token)
         };
         RequiredFuncs.ProcessHTTP(
             "https://api.taiga.io/api/v1/userstories?project=" + projectID,
             (storiesJson) => {
             var stories = RequiredFuncs.FromJsonToArray <TaigaIOUserStory>(storiesJson);
             foreach (var reqUnit in assetReq.units)
             {
                 if (reqUnit.attributes.Count == 0)
                 {
                     continue;
                 }
                 var storySubjForReq        = "Asset Wanted: " + reqUnit.attributes[0] + " " + reqUnit.assettype;
                 bool shouldPublishAssetReq = true;
                 foreach (var story in stories)
                 {
                     if (story.subject == storySubjForReq)
                     {
                         shouldPublishAssetReq = false;
                         break;
                     }
                 }
                 if (shouldPublishAssetReq)
                 {
                     RequiredFuncs.ProcessHTTP(
                         "https://api.taiga.io/api/v1/userstories",
                         (addStoryResponseText) => {
                         RequiredFuncs.Log(RequiredFuncs.ToJsonString(new TaigaIOUserStoryAdd {
                             subject = storySubjForReq, project = projectID
                         }));
                     },
                         headerWithAuth,
                         RequiredFuncs.ToJson(new TaigaIOUserStoryAdd {
                         subject = storySubjForReq, project = projectID
                     })
                         );
                 }
             }
             listener.OnFinish(true);
         },
             headerWithAuth
             );
     },
         new KeyValuePair <string, string>[] { new KeyValuePair <string, string>("Content-Type", "application/json") },
         RequiredFuncs.ToJson(new TaigaIOAuth {
         username = username, password = password, type = "normal"
     })
         );
 }
예제 #2
0
        void AssetSupplier.SupplyAsset(AssetRequest assetRequest, AssetSupplyListener listener)
        {
            Debug.Log("Begin fetching assets.");
            inteceptHelper.OnBeginSession(listener);
            var assetRequestJson = JsonUtility.ToJson(assetRequest);

            Debug.Log("Forward requst to Web.... " + assetRequestJson);
            WWWForm wwwForm = new WWWForm();

            wwwForm.AddField("assetRequestInJson", assetRequestJson);
            UnityWebRequest www = UnityWebRequest.Post(serverURL, wwwForm);

            NetworkUtil.ProcessWebRequest(www, (givenWebReq) => {
                bool didSuccess = false;
                if (givenWebReq.isNetworkError || givenWebReq.isHttpError)
                {
                    Debug.Log(givenWebReq.error);
                }
                else
                {
                    Debug.Log(Encoding.UTF8.GetString(givenWebReq.downloadHandler.data));
                    var assetPick = RequiredFuncs.FromJson <AssetPick>(givenWebReq.downloadHandler.data);
                    if (assetPick != null)
                    {
                        if (assetPick.units.Count > 0)
                        {
                            didSuccess = true;
                            listener.supplyTaker.Take(assetPick);
                        }
                    }
                }
                if (!didSuccess)
                {
                    listener.supplyTaker.None();
                }
                inteceptHelper.OnEndSession(listener);
            }
                                          );
        }
예제 #3
0
 void AssetModifyInterface.SetContent <ContentType>(AssetContentSettingParam <ContentType> setParam, AssetInResultListener <ContentType> listener)
 {
     if (string.IsNullOrEmpty(setParam.contentPath))
     {
         if ((typeof(MainContentBaseType) == typeof(ContentType)))
         {
             basicAssetIO.assetIn.SetContent(new BasicAssetInParam <ContentType> {
                 content     = setParam.content,
                 contentPath = "Main.json",
                 doOverwrite = setParam.doOverwrite
             }, listener);
         }
         else if (typeof(MainContentType) == typeof(ContentType))
         {
             basicAssetIO.assetIn.SetContent(new BasicAssetInParam <ContentType> {
                 content     = setParam.content,
                 contentPath = "Main.json",
                 doOverwrite = setParam.doOverwrite
             }, listener);
         }
         else if (typeof(byte[]) == typeof(ContentType))
         {
             basicAssetIO.assetIn.SetContent(new BasicAssetInParam <MainContentType> {
                 content     = RequiredFuncs.FromJson <MainContentType>(Encoding.UTF8.GetString((byte[])(object)setParam.content)),
                 contentPath = "Main.json",
                 doOverwrite = setParam.doOverwrite
             }, new StubAssetInResultListener <MainContentType>());
         }
     }
     else
     {
         basicAssetIO.assetIn.SetContent(new BasicAssetInParam <ContentType> {
             content     = setParam.content,
             contentPath = setParam.contentPath,
             doOverwrite = setParam.doOverwrite
         }, listener);
     }
 }