Change portfolio schema on server to use slugs
This commit is contained in:
parent
481e601878
commit
6edbadda2e
|
|
@ -14,7 +14,7 @@ class AddProjectArgument(ProjectInput):
|
||||||
|
|
||||||
|
|
||||||
class UpdateProjectArgument(ProjectInput):
|
class UpdateProjectArgument(ProjectInput):
|
||||||
id = graphene.ID(required=True)
|
slug = graphene.String(required=True)
|
||||||
final = graphene.Boolean()
|
final = graphene.Boolean()
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -24,9 +24,9 @@ class ProjectEntryInput(InputObjectType):
|
||||||
|
|
||||||
|
|
||||||
class AddProjectEntryArgument(ProjectEntryInput):
|
class AddProjectEntryArgument(ProjectEntryInput):
|
||||||
project = graphene.ID(required=True)
|
project = graphene.String(required=True)
|
||||||
|
|
||||||
|
|
||||||
class UpdateProjectEntryArgument(ProjectEntryInput):
|
class UpdateProjectEntryArgument(ProjectEntryInput):
|
||||||
id = graphene.ID(required=True)
|
slug = graphene.String(required=True)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ class UpdateProject(MutateProject):
|
||||||
cls.user_is_owner(data, info.context.user)
|
cls.user_is_owner(data, info.context.user)
|
||||||
data['student'] = info.context.user.id
|
data['student'] = info.context.user.id
|
||||||
|
|
||||||
entity = get_object(Project, data['id'])
|
entity = Project.objects.get(slug=data['slug'])
|
||||||
serializer = ProjectSerializer(entity, data=data)
|
serializer = ProjectSerializer(entity, data=data)
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
serializer.save()
|
serializer.save()
|
||||||
|
|
@ -76,7 +76,7 @@ class UpdateProject(MutateProject):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def user_is_owner(cls, data, user):
|
def user_is_owner(cls, data, user):
|
||||||
project = get_object(Project, data['id'])
|
project = Project.objects.get(slug=data['slug'])
|
||||||
if not project or not project.student == user:
|
if not project or not project.student == user:
|
||||||
raise PermissionDenied('not allowed')
|
raise PermissionDenied('not allowed')
|
||||||
|
|
||||||
|
|
@ -90,7 +90,7 @@ class MutateProjectEntry(relay.ClientIDMutation):
|
||||||
data = kwargs.get('project_entry')
|
data = kwargs.get('project_entry')
|
||||||
|
|
||||||
if data.get('project') is not None:
|
if data.get('project') is not None:
|
||||||
project = get_object(Project, data.get('project'))
|
project = Project.objects.get(slug=data['project'])
|
||||||
data['project'] = project.id
|
data['project'] = project.id
|
||||||
if check_owner(info.context.user, project):
|
if check_owner(info.context.user, project):
|
||||||
return cls(project_entry=None, errors=['not allowed'])
|
return cls(project_entry=None, errors=['not allowed'])
|
||||||
|
|
@ -121,15 +121,15 @@ class UpdateProjectEntry(MutateProjectEntry):
|
||||||
|
|
||||||
class DeleteProject(relay.ClientIDMutation):
|
class DeleteProject(relay.ClientIDMutation):
|
||||||
class Input:
|
class Input:
|
||||||
id = graphene.ID(required=True)
|
slug = graphene.String(required=True)
|
||||||
|
|
||||||
success = graphene.Boolean()
|
success = graphene.Boolean()
|
||||||
errors = graphene.List(graphene.String)
|
errors = graphene.List(graphene.String)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def mutate_and_get_payload(cls, root, info, **kwargs):
|
def mutate_and_get_payload(cls, root, info, **kwargs):
|
||||||
id = kwargs.get('id')
|
slug = kwargs.get('slug')
|
||||||
project = get_object(Project, id)
|
project = Project.objects.get(slug=slug)
|
||||||
user = info.context.user
|
user = info.context.user
|
||||||
|
|
||||||
if project.student != user:
|
if project.student != user:
|
||||||
|
|
@ -159,7 +159,7 @@ class DeleteProjectEntry(relay.ClientIDMutation):
|
||||||
|
|
||||||
class UpdateProjectSharedState(relay.ClientIDMutation):
|
class UpdateProjectSharedState(relay.ClientIDMutation):
|
||||||
class Input:
|
class Input:
|
||||||
id = graphene.ID()
|
slug = graphene.String()
|
||||||
shared = graphene.Boolean()
|
shared = graphene.Boolean()
|
||||||
|
|
||||||
success = graphene.Boolean()
|
success = graphene.Boolean()
|
||||||
|
|
@ -169,11 +169,11 @@ class UpdateProjectSharedState(relay.ClientIDMutation):
|
||||||
@classmethod
|
@classmethod
|
||||||
def mutate_and_get_payload(cls, root, info, **args):
|
def mutate_and_get_payload(cls, root, info, **args):
|
||||||
try:
|
try:
|
||||||
id = args.get('id')
|
slug = args.get('slug')
|
||||||
shared = args.get('shared')
|
shared = args.get('shared')
|
||||||
user = info.context.user
|
user = info.context.user
|
||||||
|
|
||||||
project = get_object(Project, id)
|
project = Project.objects.get(slug=slug)
|
||||||
if project.student != user:
|
if project.student != user:
|
||||||
raise PermissionError()
|
raise PermissionError()
|
||||||
project.final = shared
|
project.final = shared
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue