Skip to content
Snippets Groups Projects
Shifts.cs 1.87 KiB
Newer Older
using SDK.Contracts.Communication;
using SDK.Contracts.Data;
using SDK.Exceptions;
Michal Ondrejička's avatar
Michal Ondrejička committed
using SDK.Models;
using System;
using System.Threading.Tasks;

namespace SDK
Michal Ondrejička's avatar
Michal Ondrejička committed
{
    //(2/2)
    public partial class DevkitConnectorV3
    {
        public async Task<ShiftContract[]> GetShifts(string queryString = "")
        {
Daniel Andrášik's avatar
Daniel Andrášik committed
            string subUrl = Address.UrlCombine(Address.Shifts, queryString);
Michal Ondrejička's avatar
Michal Ondrejička committed
            var response = await GetRequest<ShiftContract[]>(subUrl);

            return response;
        }
Michal Ondrejička's avatar
Michal Ondrejička committed
        public async Task<ShiftContract> GetShift(int id, string queryString = "")
Michal Ondrejička's avatar
Michal Ondrejička committed
        {
Daniel Andrášik's avatar
Daniel Andrášik committed
            string subUrl = Address.UrlCombine(Address.Shifts, Convert.ToString(id), queryString);
Michal Ondrejička's avatar
Michal Ondrejička committed
            var response = await GetRequest<ShiftContract>(subUrl);

            return response;
        }

        public async Task<ShiftContract> AddShift(ShiftContract shiftContract)
        {
            string subUrl = Address.UrlCombine(Address.Shifts);
            var response = await PostRequest<AddShiftResponseContract>(subUrl, shiftContract);

            if (response.ErrorMessage != null)
            {
                throw new ServerResponseException(ServerResponseException.message + " " + response.ErrorMessage);
            }

            return (ShiftContract)response;
        }

        public async Task UpdateShift(ShiftContract shiftContract)
        {
            if (shiftContract.Id == 0)
            {
                throw new BadRequestException(NotFoundException.message + " Shift object has no Id.");
            }
            string subUrl = Address.UrlCombine(Address.Shifts, Convert.ToString(shiftContract.Id));
            await PatchRequest<string>(subUrl, shiftContract);
        }

        public async Task DeleteShift(int id)
        {
            string subUrl = Address.UrlCombine(Address.Shifts, Convert.ToString(id));
            await DeleteRequest(subUrl);
        }
Michal Ondrejička's avatar
Michal Ondrejička committed
    }
}