Esempio n. 1
0
    //GET Request
    public IEnumerator GetPrograms(IObserver <YleResponse> observer, CancellationToken cancellationToken, string query, int offset = 0, int limit = 10)
    {
        using (
            UnityWebRequest webRequest = UnityWebRequest.Get(
                UrlBuilder.Create(BASE_URL)
                .Path(VERSION).Path("programs").Path("items.json")
                .Query("availability", "ondemand").Query("limit", limit.ToString()).Query("offset", offset.ToString()).Query("q", query)
                .Query("app_id", m_AppId).Query("app_key", m_AppKey)
                .Build()
                )
            ) {
            yield return(webRequest.Send());

            if (webRequest.isHttpError || webRequest.isNetworkError)
            {
                observer.OnError(new System.Exception(webRequest.responseCode.ToString()));
            }
            else
            {
                YleResponse response = JsonUtility.FromJson <YleResponse>(webRequest.downloadHandler.text);
                if (response != null)
                {
                    observer.OnNext(response);
                }
                observer.OnCompleted();
            }
        }
    }
Esempio n. 2
0
    // Use this for mapping YleResponse to Item
    public List <Program> ToPrograms(YleResponse response)
    {
        List <Program> programs = new List <Program>();

        for (int index = 0; index < response.data.Length; index++)
        {
            Program program = new Program();

            program.id          = response.data[index].id;
            program.imageId     = response.data[index].image.id;
            program.title       = (response.data[index].title.fi != null) ? response.data[index].title.fi : response.data[index].title.sv;
            program.title       = (program.title != null) ? program.title : "No title found";
            program.description = (response.data[index].description.fi != null) ? response.data[index].description.fi : "No description found";
            program.type        = (response.data[index].type != null) ? response.data[index].type : "No type found";
            program.duration    = ParseDurationFromResponse(response.data[index].duration);

            programs.Add(program);
        }
        return(programs);
    }