Scripts/Runtime/Data/Configuration/WitConfigurationData.cs (40 lines of code) (raw):
/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the license found in the
* LICENSE file in the root directory of this source tree.
*/
using System;
using Facebook.WitAi.Data.Configuration;
using Facebook.WitAi.Lib;
using UnityEngine;
namespace Facebook.WitAi.Configuration
{
[Serializable]
public abstract class WitConfigurationData
{
[SerializeField] public WitConfiguration witConfiguration;
#if UNITY_EDITOR
public void UpdateData(Action onUpdateComplete = null)
{
if (!witConfiguration)
{
onUpdateComplete?.Invoke();
return;
}
var request = OnCreateRequest();
request.onResponse = (r) => OnUpdateData(r, onUpdateComplete);
request.Request();
}
protected abstract WitRequest OnCreateRequest();
private void OnUpdateData(WitRequest request, Action onUpdateComplete)
{
if (request.StatusCode == 200)
{
UpdateData(request.ResponseData);
}
else
{
Debug.LogError(request.StatusDescription);
}
onUpdateComplete?.Invoke();
}
public abstract void UpdateData(WitResponseNode data);
#endif
}
}