Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
7bfcca0
Basic features of API
kgolezardi Apr 14, 2017
7889161
API working as a service
kgolezardi Apr 27, 2017
bcbe8a2
Fixed a bug in API WebServer
kgolezardi Apr 27, 2017
66cde0a
Use task name instead of task ID in API
kgolezardi May 2, 2017
8a7fc0d
Add minor changes to API features
kgolezardi May 2, 2017
7158816
Add templates to APIWebServer
kgolezardi May 2, 2017
1eaa5ee
Recieve files as base64 encoded strings in API
kgolezardi May 2, 2017
d6dcb12
Handle managers when creating a new task in API
kgolezardi May 2, 2017
b03c802
Fix the required files for API-created usertest
kgolezardi May 18, 2017
a051204
Change the output format of API
kgolezardi May 18, 2017
ba5da90
Remove managers from sent files for API-created usertest
kgolezardi May 18, 2017
f7c6a31
Use testcase codename instead of ID in API URLs
kgolezardi May 27, 2017
4cb9430
Change the output format of API usertest output file
kgolezardi May 27, 2017
7517a80
Check if there is a task with the given name before creating one by API
kgolezardi May 27, 2017
5ed6cd4
Merge branch 'master' of https://github.com/cms-dev/cms into api
kgolezardi Jun 2, 2017
f0e18ec
Add remove testcase handler to API
kgolezardi Jun 3, 2017
b5394b8
Return execution time instead of compilation time in API
kgolezardi Jun 4, 2017
54503a4
Fixed bugs
mkrima Jun 11, 2017
9758fe2
Fix bugs
kgolezardi Jun 13, 2017
e0215e6
Compile communication manager sent to API
kgolezardi Jun 15, 2017
6d84912
Change usertest outcome representation in API
kgolezardi Jun 15, 2017
f283b50
Show more execution details in API
kgolezardi Jul 16, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions cms/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,10 @@ def __init__(self):
self.admin_listen_port = 8889
self.admin_cookie_duration = 10 * 60 * 60 # 10 hours

# APIWebServer.
self.api_listen_address = ""
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In order to keep the change in the main code, can we have these two as arguments to the script instead?

self.api_listen_port = 8897

# ProxyService.
self.rankings = ["http://usern4me:passw0rd@localhost:8890/"]
self.https_certfile = None
Expand Down
1 change: 0 additions & 1 deletion cms/server/admin/handlers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,6 @@
UserTestHandler, \
UserTestFileHandler


HANDLERS = [
(r"/", OverviewHandler),
(r"/login", LoginHandler),
Expand Down
27 changes: 27 additions & 0 deletions cms/server/api/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/env python2
# -*- coding: utf-8 -*-

# Contest Management System - http://cms-dev.github.io/
# Copyright © 2017 Kiarash Golezardi <kiarashgolezardi@gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

from __future__ import absolute_import
from __future__ import print_function
from __future__ import unicode_literals

from .server import APIWebServer


__all__ = ["APIWebServer"]
54 changes: 54 additions & 0 deletions cms/server/api/handlers/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#!/usr/bin/env python2
# -*- coding: utf-8 -*-

# Contest Management System - http://cms-dev.github.io/
# Copyright © 2017 Kiarash Golezardi <kiarashgolezardi@gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

from __future__ import absolute_import
from __future__ import print_function
from __future__ import unicode_literals

from .handler import \
TestHandler, \
TaskTypesHandler, \
ScoreTypesHandler, \
LanguagesHandler, \
AddTaskHandler, \
RemoveTaskHandler, \
AddTestcaseHandler, \
DeleteTestcaseHandler, \
GenerateOutputHandler, \
SubmissionDetailsHandler, \
SubmissionOutputHandler

HANDLERS = [
(r"/test", TestHandler),
(r"/tasktypes/", TaskTypesHandler),
(r"/scoretypes", ScoreTypesHandler),
(r"/languages", LanguagesHandler),
(r"/tasks/add", AddTaskHandler),

(r"/task/(.*)/remove", RemoveTaskHandler),
(r"/task/(.*)/testcases/add", AddTestcaseHandler),
(r"/task/(.*)/testcase/(.*)/delete", DeleteTestcaseHandler),

(r"/task/(.*)/testcase/(.*)/run", GenerateOutputHandler),
(r"/task/(.*)/test/([0-9]+)/result", SubmissionDetailsHandler),
(r"/task/(.*)/test/([0-9]+)/output", SubmissionOutputHandler),
]


__all__ = ["HANDLERS"]
Loading