def mutate(self, info, content): logger.info('Received request to create new entry') user = get_authenticated_user(info) entry = Entry(content=content, posted_by=user) entry.save() logger.info('New entry created') return CreateEntry(id=entry.id, content=entry.content, created=entry.created, posted_by=user)
def mutate(self, info, id): logger.info(f'Received request to delete entry with id "{id}"') user = get_authenticated_user(info) try: entry = user.entry_set.get(id=id) entry.delete() except Entry.DoesNotExist: errorLogger.logAndRaise( GraphQLError, f'Cannot find entry with id "{id}" to delete it') logger.info('Deleted entry') return DeleteEntry(id=id)
def test_throws_error_if_user_not_authenticated(self): self.mock_resolver_info.context.user.is_anonymous = True with self.assertRaises(GraphQLError, msg='You must be logged in to do that'): get_authenticated_user(self.mock_resolver_info)
def test_returns_user_if_authenticated(self): self.mock_resolver_info.context.user.is_anonymous = False self.assertEqual(self.mock_resolver_info.context.user, get_authenticated_user(self.mock_resolver_info))
def resolve_random_entry(self, info): logger.info('Received request to get a random entry') user = get_authenticated_user(info) user_entries = user.entry_set.all() logger.info(f'Returning random entry owned by {user.username}') return random.choice(user_entries)
def resolve_my_entries(self, info): logger.info('Received request to view all owned entries') user = get_authenticated_user(info) logger.info(f'Returning all entries owned by {user.username}') return user.entry_set.all()