Skip to content
This repository was archived by the owner on May 6, 2022. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
10 changes: 5 additions & 5 deletions server/openapi_server/controllers/challenge_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,10 @@ def create_challenge(account_name): # noqa: E501
res = Error(f"The challenge platform {platform_id} was not found", status) # noqa: E501
return res, status

readme = DbChallengeReadme(
text=challenge_create_request.name
).save()

challenge = DbChallenge(
name=challenge_create_request.name,
displayName=challenge_create_request.display_name,
Expand All @@ -71,18 +75,14 @@ def create_challenge(account_name): # noqa: E501
startDate=challenge_create_request.start_date,
endDate=challenge_create_request.end_date,
platformId=challenge_create_request.platform_id,
readmeId=readme.to_dict().get("id"),
topics=challenge_create_request.topics,
doi=challenge_create_request.doi,
fullName="%s/%s" % (account_name, challenge_create_request.name),
ownerId=account_id
).save()
challenge_id = challenge.to_dict().get("id")

DbChallengeReadme(
text=challenge_create_request.name,
challengeId=challenge_id
).save()

res = ChallengeCreateResponse(id=challenge_id)
status = 201
except NotUniqueError as error:
Expand Down
2 changes: 2 additions & 0 deletions server/openapi_server/dbmodels/challenge.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

from openapi_server.dbmodels.account import Account
from openapi_server.dbmodels.challenge_platform import ChallengePlatform
from openapi_server.dbmodels.challenge_readme import ChallengeReadme


class Challenge(Document):
Expand All @@ -22,6 +23,7 @@ class Challenge(Document):
startDate = DateTimeField()
endDate = DateTimeField()
platformId = ReferenceField(ChallengePlatform)
readmeId = ReferenceField(ChallengeReadme)
topics = ListField(StringField(unique=True), default=[])
doi = StringField()
createdAt = DateTimeField(required=True, default=datetime.datetime.now)
Expand Down
5 changes: 1 addition & 4 deletions server/openapi_server/dbmodels/challenge_readme.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
import datetime
from bson import ObjectId
from mongoengine import DateTimeField, Document, ObjectIdField, StringField, ReferenceField, IntField # noqa: E501

from openapi_server.dbmodels.challenge import Challenge
from mongoengine import DateTimeField, Document, ObjectIdField, StringField, IntField # noqa: E501


class ChallengeReadme(Document):
id = ObjectIdField(primary_key=True, default=ObjectId)
text = StringField(required=True)
challengeId = ReferenceField(Challenge, required=True, unique=True)
createdAt = DateTimeField(required=True, default=datetime.datetime.now)
updatedAt = DateTimeField(required=True, default=datetime.datetime.now)
v = IntField(db_field='__v')
Expand Down
32 changes: 31 additions & 1 deletion server/openapi_server/models/challenge.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class Challenge(Model):
Do not edit the class manually.
"""

def __init__(self, id=None, name=None, display_name=None, description=None, website_url=None, status=None, start_date=None, end_date=None, platform_id=None, topics=None, doi=None, full_name=None, owner_id=None, created_at=None, updated_at=None): # noqa: E501
def __init__(self, id=None, name=None, display_name=None, description=None, website_url=None, status=None, start_date=None, end_date=None, platform_id=None, topics=None, doi=None, full_name=None, owner_id=None, readme_id=None, created_at=None, updated_at=None): # noqa: E501
"""Challenge - a model defined in OpenAPI

:param id: The id of this Challenge. # noqa: E501
Expand Down Expand Up @@ -54,6 +54,8 @@ def __init__(self, id=None, name=None, display_name=None, description=None, webs
:type full_name: str
:param owner_id: The owner_id of this Challenge. # noqa: E501
:type owner_id: str
:param readme_id: The readme_id of this Challenge. # noqa: E501
:type readme_id: str
:param created_at: The created_at of this Challenge. # noqa: E501
:type created_at: datetime
:param updated_at: The updated_at of this Challenge. # noqa: E501
Expand All @@ -73,6 +75,7 @@ def __init__(self, id=None, name=None, display_name=None, description=None, webs
'doi': str,
'full_name': str,
'owner_id': str,
'readme_id': str,
'created_at': datetime,
'updated_at': datetime
}
Expand All @@ -91,6 +94,7 @@ def __init__(self, id=None, name=None, display_name=None, description=None, webs
'doi': 'doi',
'full_name': 'fullName',
'owner_id': 'ownerId',
'readme_id': 'readmeId',
'created_at': 'createdAt',
'updated_at': 'updatedAt'
}
Expand All @@ -108,6 +112,7 @@ def __init__(self, id=None, name=None, display_name=None, description=None, webs
self._doi = doi
self._full_name = full_name
self._owner_id = owner_id
self._readme_id = readme_id
self._created_at = created_at
self._updated_at = updated_at

Expand Down Expand Up @@ -429,6 +434,31 @@ def owner_id(self, owner_id):

self._owner_id = owner_id

@property
def readme_id(self):
"""Gets the readme_id of this Challenge.

The unique identifier of a challenge README # noqa: E501

:return: The readme_id of this Challenge.
:rtype: str
"""
return self._readme_id

@readme_id.setter
def readme_id(self, readme_id):
"""Sets the readme_id of this Challenge.

The unique identifier of a challenge README # noqa: E501

:param readme_id: The readme_id of this Challenge.
:type readme_id: str
"""
if readme_id is None:
raise ValueError("Invalid value for `readme_id`, must not be `None`") # noqa: E501

self._readme_id = readme_id

@property
def created_at(self):
"""Gets the created_at of this Challenge.
Expand Down
32 changes: 31 additions & 1 deletion server/openapi_server/models/challenge_all_of.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,15 @@ class ChallengeAllOf(Model):
Do not edit the class manually.
"""

def __init__(self, full_name=None, owner_id=None, created_at=None, updated_at=None): # noqa: E501
def __init__(self, full_name=None, owner_id=None, readme_id=None, created_at=None, updated_at=None): # noqa: E501
"""ChallengeAllOf - a model defined in OpenAPI

:param full_name: The full_name of this ChallengeAllOf. # noqa: E501
:type full_name: str
:param owner_id: The owner_id of this ChallengeAllOf. # noqa: E501
:type owner_id: str
:param readme_id: The readme_id of this ChallengeAllOf. # noqa: E501
:type readme_id: str
:param created_at: The created_at of this ChallengeAllOf. # noqa: E501
:type created_at: datetime
:param updated_at: The updated_at of this ChallengeAllOf. # noqa: E501
Expand All @@ -30,19 +32,22 @@ def __init__(self, full_name=None, owner_id=None, created_at=None, updated_at=No
self.openapi_types = {
'full_name': str,
'owner_id': str,
'readme_id': str,
'created_at': datetime,
'updated_at': datetime
}

self.attribute_map = {
'full_name': 'fullName',
'owner_id': 'ownerId',
'readme_id': 'readmeId',
'created_at': 'createdAt',
'updated_at': 'updatedAt'
}

self._full_name = full_name
self._owner_id = owner_id
self._readme_id = readme_id
self._created_at = created_at
self._updated_at = updated_at

Expand Down Expand Up @@ -105,6 +110,31 @@ def owner_id(self, owner_id):

self._owner_id = owner_id

@property
def readme_id(self):
"""Gets the readme_id of this ChallengeAllOf.

The unique identifier of a challenge README # noqa: E501

:return: The readme_id of this ChallengeAllOf.
:rtype: str
"""
return self._readme_id

@readme_id.setter
def readme_id(self, readme_id):
"""Sets the readme_id of this ChallengeAllOf.

The unique identifier of a challenge README # noqa: E501

:param readme_id: The readme_id of this ChallengeAllOf.
:type readme_id: str
"""
if readme_id is None:
raise ValueError("Invalid value for `readme_id`, must not be `None`") # noqa: E501

self._readme_id = readme_id

@property
def created_at(self):
"""Gets the created_at of this ChallengeAllOf.
Expand Down
13 changes: 9 additions & 4 deletions server/openapi_server/openapi/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2878,6 +2878,10 @@ components:
- description
- name
type: object
ChallengeReadmeId:
description: The unique identifier of a challenge README
example: 507f1f77bcf86cd799439011
type: string
Challenge:
allOf:
- $ref: '#/components/schemas/ChallengeCreateResponse'
Expand Down Expand Up @@ -2970,10 +2974,6 @@ components:
- challengeOrganizers
title: ChallengeOrganizerList
type: object
ChallengeReadmeId:
description: The unique identifier of a challenge README
example: 507f1f77bcf86cd799439011
type: string
ChallengeReadmeCreateResponse:
description: The unique identifier of the challenge README created
example:
Expand Down Expand Up @@ -3462,6 +3462,10 @@ components:
description: The unique identifier of an account
example: 507f1f77bcf86cd799439011
type: string
readmeId:
description: The unique identifier of a challenge README
example: 507f1f77bcf86cd799439011
type: string
createdAt:
format: date-time
type: string
Expand All @@ -3472,6 +3476,7 @@ components:
- createdAt
- fullName
- ownerId
- readmeId
- updatedAt
type: object
PageOfChallenges_allOf:
Expand Down