Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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))
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
 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()