From 6edbadda2e82614418e1269c10415b551506a0d3 Mon Sep 17 00:00:00 2001 From: Ramon Wenger Date: Sat, 29 Jan 2022 20:02:58 +0100 Subject: [PATCH] Change portfolio schema on server to use slugs --- server/portfolio/inputs.py | 6 +++--- server/portfolio/mutations.py | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/server/portfolio/inputs.py b/server/portfolio/inputs.py index 44f8bf07..ebb4e354 100644 --- a/server/portfolio/inputs.py +++ b/server/portfolio/inputs.py @@ -14,7 +14,7 @@ class AddProjectArgument(ProjectInput): class UpdateProjectArgument(ProjectInput): - id = graphene.ID(required=True) + slug = graphene.String(required=True) final = graphene.Boolean() @@ -24,9 +24,9 @@ class ProjectEntryInput(InputObjectType): class AddProjectEntryArgument(ProjectEntryInput): - project = graphene.ID(required=True) + project = graphene.String(required=True) class UpdateProjectEntryArgument(ProjectEntryInput): - id = graphene.ID(required=True) + slug = graphene.String(required=True) diff --git a/server/portfolio/mutations.py b/server/portfolio/mutations.py index 8ee1cdfd..8dbb454d 100644 --- a/server/portfolio/mutations.py +++ b/server/portfolio/mutations.py @@ -62,7 +62,7 @@ class UpdateProject(MutateProject): cls.user_is_owner(data, info.context.user) data['student'] = info.context.user.id - entity = get_object(Project, data['id']) + entity = Project.objects.get(slug=data['slug']) serializer = ProjectSerializer(entity, data=data) if serializer.is_valid(): serializer.save() @@ -76,7 +76,7 @@ class UpdateProject(MutateProject): @classmethod 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: raise PermissionDenied('not allowed') @@ -90,7 +90,7 @@ class MutateProjectEntry(relay.ClientIDMutation): data = kwargs.get('project_entry') 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 if check_owner(info.context.user, project): return cls(project_entry=None, errors=['not allowed']) @@ -121,15 +121,15 @@ class UpdateProjectEntry(MutateProjectEntry): class DeleteProject(relay.ClientIDMutation): class Input: - id = graphene.ID(required=True) + slug = graphene.String(required=True) success = graphene.Boolean() errors = graphene.List(graphene.String) @classmethod def mutate_and_get_payload(cls, root, info, **kwargs): - id = kwargs.get('id') - project = get_object(Project, id) + slug = kwargs.get('slug') + project = Project.objects.get(slug=slug) user = info.context.user if project.student != user: @@ -159,7 +159,7 @@ class DeleteProjectEntry(relay.ClientIDMutation): class UpdateProjectSharedState(relay.ClientIDMutation): class Input: - id = graphene.ID() + slug = graphene.String() shared = graphene.Boolean() success = graphene.Boolean() @@ -169,11 +169,11 @@ class UpdateProjectSharedState(relay.ClientIDMutation): @classmethod def mutate_and_get_payload(cls, root, info, **args): try: - id = args.get('id') + slug = args.get('slug') shared = args.get('shared') user = info.context.user - project = get_object(Project, id) + project = Project.objects.get(slug=slug) if project.student != user: raise PermissionError() project.final = shared