Exemple #1
0
def create_classes(client):
    #
    # Create an class to hold customers and transactions
    #
    res = client.query(
        [
            q.create_class({"name": "customers"}),
            q.create_class({"name": "transactions"})
        ]
    )
    print('Create \'customer\' and \'transaction\' classes.')
    pprint.pprint(res)
Exemple #2
0
def schema(event, context):
    create_todos = query.create_class({
        'name': 'todos'
    })

    create_all_todos = query.create_index({
        'name': 'all_todos',
        'source': TODOS
    })

    client.query(query.if_expr(
        query.exists(TODOS),
        query.get(TODOS),
        create_todos
    ))

    client.query(query.if_expr(
        query.exists(ALL_TODOS),
        query.get(ALL_TODOS),
        create_all_todos
    ))

    # create a response
    response = {
        "statusCode": 200
    }

    return response
Exemple #3
0
def schema(event, context):
    create_todos = query.create_class({'name': 'todos'})

    create_all_todos = query.create_index({
        'name': 'all_todos',
        'source': TODOS
    })

    client.query(
        query.if_expr(query.exists(TODOS), query.get(TODOS), create_todos))

    client.query(
        query.if_expr(query.exists(ALL_TODOS), query.get(ALL_TODOS),
                      create_all_todos))

    # create a response
    response = {"statusCode": 200}

    return response
Exemple #4
0
def create_schema(client):
    #
    # Create an class to hold customers
    #
    res = client.query(q.create_class({"name": "customers"}))
    print('Create \'customer\' class: {0}'.format(res))

    #
    # Create an index to access customer records by id
    #
    res = client.query(
        q.create_index({
            "name": "customer_by_id",
            "source": q.class_("customers"),
            "unique": True,
            "terms": {
                "field": ["data", "id"]
            }
        }))
    print('Create \'customer_by_id\' index: {0}'.format(res))
def create_schema(client):
    #
    # Create an class to hold customers
    #
    res = client.query(q.create_class({"name": "customers"}))
    print('Create \'customer\' class: {0}'.format(res))

    #
    # Create two indexes here. The first index is to query customers when you know specific id's.
    # The second is used to query customers by range. Examples of each type of query are presented
    # below.
    #
    res = client.query([
        q.create_index({
            "name": "customer_by_id",
            "source": q.class_("customers"),
            "unique": True,
            "terms": {
                "field": ["data", "id"]
            }
        }),
        q.create_index({
            "name":
            "customer_id_filter",
            "source":
            q.class_("customers"),
            "unique":
            True,
            "values": [{
                "field": ["data", "id"]
            }, {
                "field": ["ref"]
            }]
        })
    ])
    print(
        'Create \'customer_by_id\' index & \'customer_id_filter\' index : {0}'.
        format(res))
Exemple #6
0
    def test_queries_are_made():
        # The client mock is used by both the
        # database and annotation database
        # so here we assert calls for both
        # could maybe be improved by changing the way databases are created?
        create_annotation_database_queries = [
            q.create_database({'name': '1234-annotations'}),
            q.create_key(
                {'database': q.database('1234-annotations'), 'role': 'server'}
            )
        ]
        mock_dependencies.database.client.query.assert_has_calls(
            [call(query) for query in create_annotation_database_queries]
        )
        setup_annotation_database_queries = [
            q.create_class({'name': 'SpanLabel'}),
            q.create_class({'name': 'DocumentLabel'}),
            q.create_class({'name': 'RelationLabel'}),
            q.create_class({'name': 'Relation'}),
            q.create_class({'name': 'Span'}),
            q.create_class({'name': 'Document'}),
            q.create_index(
                {'name': 'documents', 'source': q.class_('Document')}),
            q.create_index(
                {'name': 'span_labels', 'source': q.class_('SpanLabel')}
            ),
            q.create_index(
                {'name': 'relation_labels', 'source': q.class_('RelationLabel')}
            ),
            q.create_index(
                {'name': 'document_labels', 'source': q.class_('DocumentLabel')}
            )
        ]
        mock_dependencies.database.client.query.assert_has_calls(
            [call(query) for query in setup_annotation_database_queries]
        )

        event = event_reader('post_confirmation_event.json')
        handle(event, {}, dependencies=mock_dependencies)
        assert event == event
        test_buckets_are_created()
        test_queries_are_made()
        test_user_attributes_are_updated()
Exemple #7
0
 def _create_class(self, class_: Type[T]):
     self.client.query(q.create_class({'name': class_.name()}))