Exemplo n.º 1
0
    def _find(self, args={}):
        filters = []
        if args.get('age'):
            filters.append({'key': 'age', 'value': request.args['age']})
        if args.get('sex'):
            filters.append({'key': 'sex', 'value': request.args['sex']})
        if args.get('area'):
            filters.append({'key': 'area', 'value': request.args['area']})
        if args.get('reason'):
            filters.append({'key': 'reason', 'value': request.args['reason']})
        if args.get('status'):
            filters.append({'key': 'status', 'value': request.args['status']})
        if args.get('cluster_no'):
            filters.append({
                'key': 'cluster_no',
                'value': int(request.args['cluster_no'])
            })
        if args.get('release_date'):
            filters.append({
                'key': 'release_date',
                'value': request.args['release_date']
            })
        else:
            if args.get('from_date'):
                filters.append({
                    'key': 'release_date',
                    'symbol': '>=',
                    'value': request.args['from_date']
                })
            if args.get('to_date'):
                filters.append({
                    'key': 'release_date',
                    'symbol': '<=',
                    'value': request.args['to_date']
                })

        offset = args.get('offset', '')
        offset = int(offset) if str.isdecimal(offset) else 0
        limit = args.get('limit', '')
        limit = int(limit) if str.isdecimal(limit) else None

        persons = Person.find(filters=filters, offset=offset, limit=limit)
        total = Person.count(filters=filters)
        current_date = Person.current_date()

        result = {
            'status': 'success',
            'current_date': current_date,
            'persons': persons,
            'total': total
        }

        return result