Verified Commit eff4c266 authored by Peter Stanko's avatar Peter Stanko
Browse files

Submission entity has been extended

parent fe85256d
Loading
Loading
Loading
Loading
+38 −20
Original line number Diff line number Diff line
import logging
from pathlib import Path

from kontr_api.resources.default import Defaults, Default

@@ -37,45 +38,62 @@ class Submissions(Defaults):
        return self.rest.get(url, params=params)

    def download_result_files(self, sid, path):
        url = f"{self.url}/{sid}/files/results"
        return self.rest.download_file(url, path)
        return self.__generic_download(sid, path, 'results')

    def download_submission_files(self, sid, path):
        url = f"{self.url}/{sid}/files/sources"
        return self.rest.download_file(url, path)
        return self.__generic_download(sid, path, 'sources')

    def download_test_files(self, sid, path):
        url = f"{self.url}/{sid}/files/test_files"
        return self.rest.download_file(url, path)
        return self.__generic_download(sid, path, 'test_files')

    def upload_result_files(self, sid, path):
        url = f"{self.url}/{sid}/files/results"
        return self.rest.upload_file(url, path)
        return self.__generic_upload(sid, path, 'results')

    def upload_submission_files(self, sid, path):
        url = f"{self.url}/{sid}/files/sources"
        return self.rest.upload_file(url, path)
        return self.__generic_upload(sid, path, 'sources')

    def upload_test_files(self, sid, path):
        url = f"{self.url}/{sid}/files/test_files"
        return self.__generic_upload(sid, path, 'test_files')

    def __generic_upload(self, sid, path, what):
        url = f"{self.url}/{sid}/files/{what}"
        return self.rest.upload_file(url, path)

    def __generic_download(self, sid, path, what):
        url = f"{self.url}/{sid}/files/{what}"
        return self.rest.download_file(url, path)


class Submission(Default):
    @property
    def test_files(self):
        return self.client.test_files(self.entity_id)
    def test_files(self, path: str):
        return self.client.test_files(self.entity_id, path)

    @property
    def submission_files(self):
        return self.client.submission_files(self.entity_id)
    def submission_files(self, path: str):
        return self.client.submission_files(self.entity_id, path)

    @property
    def result_files(self):
        return self.client.result_files(self.entity_id)
    def result_files(self, path: str):
        return self.client.result_files(self.entity_id, path)

    def resubmit(self):
        return self.client.resubmit(self.entity_id)

    def cancel(self):
        return self.client.cancel(self.entity_id)

    def download_result_files(self, path):
        return self.client.download_result_files(self.entity_id, path)

    def download_submission_files(self, path):
        return self.client.download_submission_files(self.entity_id, path)

    def download_test_files(self, path):
        return self.client.download_test_files(self.entity_id, path)

    def upload_result_files(self, path):
        return self.client.upload_result_files(self.entity_id, path)

    def upload_submission_files(self, path):
        return self.client.upload_submission_files(self.entity_id, path)

    def upload_test_files(self, path):
        return self.client.upload_test_files(self.entity_id, path)
+0 −3
Original line number Diff line number Diff line
@@ -93,6 +93,3 @@ class KontrRestClient(object):
    def upload_file(self, url, path: Path):
        files = {'file': path.open('rb')}
        return self.post(url, files=files)