Example #1
0
    def get(self, first_snapshot, second_snapshot, pagination_parameters: PaginationParameters):
        """Compare NER between two snapshots"""
        first_snapshot = Snapshot.from_string(first_snapshot)
        second_snapshot = Snapshot.from_string(second_snapshot)
        first_snapshot_id = first_snapshot.id
        second_snapshot_id = second_snapshot.id

        def map_text(text):
            raw_text = text['value']
            _, first = parse_text(first_snapshot_id, raw_text)
            _, second = parse_text(second_snapshot_id, raw_text)
            return {
                'text_id': text.id,
                'first': first,
                'second': second
            }

        results = Text.objects
        pagination_parameters.item_count = results.count()
        skip_elements = (pagination_parameters.page - 1) * pagination_parameters.page_size
        texts = results.skip(skip_elements).limit(pagination_parameters.page_size)

        return {
            'first_snapshot': first_snapshot,
            'second_snapshot': second_snapshot,
            'results': map(map_text, texts)
        }
Example #2
0
 def get(self, query_filter: FilterUsersSchema,
         pagination_parameters: PaginationParameters):
     """Returns a list of existing users"""
     results = User.objects if 'query' not in query_filter else User.objects(
         Q(email__icontains=query_filter['query'])
         | Q(name__icontains=query_filter['query']))
     pagination_parameters.item_count = results.count()
     skip_elements = (pagination_parameters.page - 1) * \
                     pagination_parameters.page_size
     return results.aggregate(*[{
         '$skip': skip_elements
     }, {
         '$limit': pagination_parameters.page_size
     }, {
         '$project': {
             'id': '$_id',
             'email': 1,
             'name': 1,
             'roles': 1,
             'total_trainings': {
                 '$cond': {
                     'if': {
                         '$isArray': "$trainings"
                     },
                     'then': {
                         '$size': "$trainings"
                     },
                     'else': 0
                 }
             }
         }
     }])
Example #3
0
 def get(self, text_id, pagination_parameters: PaginationParameters):
     """Trainings for a given text"""
     trainings = Training.objects.filter(text_id=text_id)
     pagination_parameters.item_count = trainings.count()
     skip_elements = (pagination_parameters.page - 1) * \
                     pagination_parameters.page_size
     return trainings.skip(skip_elements).limit(
         pagination_parameters.page_size)
Example #4
0
 def get(self, pagination_parameters: PaginationParameters):
     """List of texts part of the training corpus"""
     results = Text.objects
     pagination_parameters.item_count = results.count()
     skip_elements = (pagination_parameters.page - 1) * \
                     pagination_parameters.page_size
     return results.skip(skip_elements).limit(
         pagination_parameters.page_size)
Example #5
0
 def get(self, pagination_parameters: PaginationParameters):
     """List available snapshots"""
     snapshots = Snapshot.objects
     pagination_parameters.item_count = snapshots.count()
     skip_elements = (pagination_parameters.page - 1) * \
                     pagination_parameters.page_size
     return snapshots.skip(skip_elements).limit(
         pagination_parameters.page_size)
Example #6
0
 def test_page_repr(self):
     page_params = PaginationParameters(1, 2)
     assert (repr(Page([1, 2, 3, 4, 5], page_params)) ==
             "Page(collection=[1, 2, 3, 4, 5],page_params={})".format(
                 repr(page_params)))
Example #7
0
 def test_pagination_parameters_repr(self):
     assert (repr(PaginationParameters(
         1, 10)) == "PaginationParameters(page=1,page_size=10)")
Example #8
0
def _get_user_trainings(user: User, pagination_params: PaginationParameters):
    texts = Training.objects.filter(user_id=user.pk)
    pagination_params.item_count = texts.count()
    skip_elements = (pagination_params.page - 1) * pagination_params.page_size
    return texts.skip(skip_elements).limit(pagination_params.page_size)