Skip to content
Snippets Groups Projects
Utils.cs 3.04 KiB
Newer Older
Michal Ondrejička's avatar
Michal Ondrejička committed

Michal Ondrejička's avatar
Michal Ondrejička committed
using SDK.Contracts.Data;
Michal Ondrejička's avatar
Michal Ondrejička committed
using SDK.Models;
Patrik Paško's avatar
Patrik Paško committed
using System;
Michal Ondrejička's avatar
Michal Ondrejička committed
using System.Threading.Tasks;

namespace SDK
Michal Ondrejička's avatar
Michal Ondrejička committed
{
    //(5/5)
    public partial class DevkitConnectorV3
    {
        public async Task<FileInfoContract[]> GetDemoFilesInfo()
        {
Daniel Andrášik's avatar
Daniel Andrášik committed
            string subUrl = Address.UrlCombine(Address.UtilsDemoFilesInfo);
Michal Ondrejička's avatar
Michal Ondrejička committed
            var response = await GetRequest<FileInfoContract[]>(subUrl);

            return response;
        }
Michal Ondrejička's avatar
Michal Ondrejička committed
        public async Task<byte[]> GetFile(string fileName)
        {
Daniel Andrášik's avatar
Daniel Andrášik committed
            string subUrl = Address.UrlCombine(Address.UtilsFile, fileName);
Michal Ondrejička's avatar
Michal Ondrejička committed

            return await GetFile(fileName, subUrl);
        }
Michal Ondrejička's avatar
Michal Ondrejička committed
        public async Task<byte[]> GetDemoFile(string fileName)
        {
Daniel Andrášik's avatar
Daniel Andrášik committed
            string subUrl = Address.UrlCombine(Address.UtilsDemoFile, fileName);
Michal Ondrejička's avatar
Michal Ondrejička committed
            //File.WriteAllBytes("C:\\Users\\mondr\\source\\repos\\twinzo-sdk\\bytes.jpg", bytes);
Michal Ondrejička's avatar
Michal Ondrejička committed
            return await GetFile(fileName, subUrl);
        }
Michal Ondrejička's avatar
Michal Ondrejička committed
        private async Task<byte[]> GetFile(string fileName, string subUrl)
        {
Daniel Andrášik's avatar
Daniel Andrášik committed
            var response = await httpClient.GetAsync(subUrl);
            return await response.Content.ReadAsByteArrayAsync();
Michal Ondrejička's avatar
Michal Ondrejička committed
        }
Daniel Andrášik's avatar
Daniel Andrášik committed
        public async Task<string> GetUnityLastVersion(string platform)
        {
Daniel Andrášik's avatar
Daniel Andrášik committed
            string subUrl = Address.UrlCombine(Address.UtilsUnityLastVersion, platform);
Michal Ondrejička's avatar
Michal Ondrejička committed
            var response = await GetRequest<string>(subUrl);
Michal Ondrejička's avatar
Michal Ondrejička committed
            return response;
Michal Ondrejička's avatar
Michal Ondrejička committed
        }
Daniel Andrášik's avatar
Daniel Andrášik committed
        public async Task<FileInfoContract> GetUnityBundleInfo(string bundleName)
        {
Daniel Andrášik's avatar
Daniel Andrášik committed
            string subUrl = Address.UrlCombine(Address.UtilsUnityBundleInfo, bundleName);
Michal Ondrejička's avatar
Michal Ondrejička committed
            var response = await GetRequest<FileInfoContract>(subUrl);

            return response;
        }
Patrik Paško's avatar
Patrik Paško committed

        /// <summary>
        /// Generic GET request
        /// </summary>
        /// <typeparam name="T">Returns type of T</typeparam>
Patrik Paško's avatar
Patrik Paško committed
        /// <param name="subUrl"></param>
        /// <returns></returns>
        public async Task<T> Get<T>(string subUrl)
        {
            return await GetRequest<T>(subUrl);
Patrik Paško's avatar
Patrik Paško committed
        }

        /// <summary>
        /// Generic POST request
        /// </summary>
        /// <typeparam name="T">Returns type of T</typeparam>
Patrik Paško's avatar
Patrik Paško committed
        /// <param name="subUrl"></param>
        /// <param name="body"></param>
        /// <returns></returns>
        public async Task<T> Post<T>(string subUrl, object body)
        {
            return await PostRequest<T>(subUrl, body);
Patrik Paško's avatar
Patrik Paško committed
        }

        /// <summary>
        /// Generic PATCH request
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="subUrl"></param>
        /// <param name="body"></param>
        /// <returns></returns>
        public async Task Patch(string subUrl, object body)
Patrik Paško's avatar
Patrik Paško committed
        {
            await PatchRequest(subUrl, body);
Patrik Paško's avatar
Patrik Paško committed
        }

        /// <summary>
        /// Generic DELETE request
        /// </summary>
        /// <param name="subUrl"></param>
        /// <returns></returns>
        public async Task Delete(string subUrl)
        {
            await DeleteRequest(subUrl);
        }