コード例 #1
0
    def test_add_task(self):
        ong = OngDocument(name="Ongzinha", description="Uma ongzinha").save()
        data = {'title': 'A cool task',
                'description': 'Hasta la vista baby!',
                'status': 'NEW',
                'ong_id': ong.id
                }
        response = self.client.post('/task/', data=data)
        task = TaskDocument.objects(
            title=data['title'],
            description=data['description']).get()

        self.assertEqual(response.status_code, 201)
        self.assertEqual(task.title, data['title'])
        self.assertEqual(task.description, data['description'])
コード例 #2
0
    def test_add_task(self):
        ong = OngDocument(name="Ongzinha", description="Uma ongzinha").save()
        data = {
            'title': 'A cool task',
            'description': 'Hasta la vista baby!',
            'status': 'NEW',
            'ong_id': ong.id
        }
        response = self.client.post('/task/', data=data)
        task = TaskDocument.objects(title=data['title'],
                                    description=data['description']).get()

        self.assertEqual(response.status_code, 201)
        self.assertEqual(task.title, data['title'])
        self.assertEqual(task.description, data['description'])
コード例 #3
0
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument('data', type=str)
        parser.add_argument('location', type=str)
        parser.add_argument('title', type=str)
        parser.add_argument('tag', type=str)
        parser.add_argument('remote', type=bool)
        parser.add_argument('name', type=str)
        args = parser.parse_args()
        data = args.get('data', None)
        location = args.get('location', None)
        title = args.get('title', None)
        tag = args.get('tag', None)
        remote = args.get('remote', None)
        name= args.get('name', None)

        if data is not None:
            # BUSCA TODAS AS CIDADES CADASTRADAS (ONG)

            if data == 'cities':
                cities = []
                ongs = OngDocument.objects[:]
                for ong in ongs:
                    cities.append(ong.address['localidade'])
                cities = set(cities)
                cities = sorted(cities)
                return json.dumps(cities, default="utf-8")

            # BUSCA TASKS DE ACORDO COM OS PARÂMETROS PASSADOS
            elif data == 'task':
                if all([location]):
                    ongs = OngDocument.objects(address__localidade__icontains=location).all()
                    tasks = []
                    for ong in ongs:
                        tasks.extend(ong.tasks)
                    return [task.to_dict() for task in tasks], 200

                elif all([tag]):
                    tasks = TaskDocument.objects(tags__icontains=tag)
                    for task in tasks:
                        ong = OngDocument.objects.get(id=task.ong_id)
                        task.location = ong.address['localidade']
                    return [task.to_dict_with_address() for task in tasks], 200

                elif all([title]):
                    tasks = TaskDocument.objects(title__icontains=title)
                    for task in tasks:
                        ong = OngDocument.objects.get(id=task.ong_id)
                        task.location = ong.address['localidade']
                    return [task.to_dict_with_address() for task in tasks], 200

                elif all([remote]):
                    tasks = TaskDocument.objects(is_remote__eq=remote)
                    return [task.to_dict_with_address]

            # BUSCA ONGS DE ACORDO COM OS PARÂMETROS PASSADOS
            elif data == 'ong':
                if all([name]):
                    ongs = OngDocument.objects(name__icontains=name)
                    return [ong.to_dict() for ong in ongs], 200

                elif all([location]):
                    ongs = OngDocument.objects(address__localidade__icontains=location)
                    return [ong.to_dict() for ong in ongs], 200

        abort(400, message="You must provide data attribute")