diff --git a/Assets/API.meta b/Assets/API.meta new file mode 100644 index 0000000..81ab039 --- /dev/null +++ b/Assets/API.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 85542efa4a532704d8e1dbc3007e92b9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/API/FurnitureFetcher.cs b/Assets/API/FurnitureFetcher.cs new file mode 100644 index 0000000..6aac1a0 --- /dev/null +++ b/Assets/API/FurnitureFetcher.cs @@ -0,0 +1,62 @@ +using System.Collections; +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.Networking; +using UnityEngine.UIElements; + +class FurnitureFetcher : MonoBehaviour +{ + public VisualTreeAsset itemTemplate; + public UIDocument uiDocument; + + public static string API_URL = "http://100.123.31.103:5102/api/v1/FurnitureVariant/GetByIds"; + + private void Awake() + { + StartCoroutine(GetFurnitureData()); + } + + IEnumerator GetFurnitureData() + { + Debug.Log($"API URL: {API_URL}"); + List variantIds = new() + { + "ab6fd51f-81f0-490d-b713-8d4f3de61a58", + "1f3b348f-b3ee-4985-b76f-7f6d61f2c835" + }; + + FurnitureIdsRequest data = new() { ids = variantIds }; + string json = JsonUtility.ToJson(data); + + using UnityWebRequest request = new(API_URL, "POST"); + byte[] bodyRaw = Encoding.UTF8.GetBytes(json); + request.uploadHandler = new UploadHandlerRaw(bodyRaw); + request.downloadHandler = new DownloadHandlerBuffer(); + request.SetRequestHeader("Content-Type", "application/json"); + + yield return request.SendWebRequest(); + + if (request.result == UnityWebRequest.Result.Success) + { + string wrappedJson = "{\"items\":" + request.downloadHandler.text + "}"; + FurnitureVariantList list = JsonUtility.FromJson(wrappedJson); + + var root = uiDocument.rootVisualElement; + var scrollView = root.Q("furniture-list"); + + foreach (var variant in list.items) + { + VisualElement item = itemTemplate.CloneTree(); + item.Q