def json(self):
        rows_pizzas, col_names = self.cypher(
            "MATCH (pkg) WHERE id(pkg)={self} MATCH (pkg)-[r:HAS]->(product:Pizza) RETURN product.name, r.units"
        )
        rows_comps, col_names = self.cypher(
            "MATCH (pkg) WHERE id(pkg)={self} MATCH (pkg)-[r:HAS]->(product:Complement) RETURN product.name, r.units"
        )
        rows_drinks, col_names = self.cypher(
            "MATCH (pkg) WHERE id(pkg)={self} MATCH (pkg)-[r:HAS]->(product:Drink) RETURN product.name, r.units"
        )
        rows_sauces, col_names = self.cypher(
            "MATCH (pkg) WHERE id(pkg)={self} MATCH (pkg)-[r:HAS]->(product:Sauce) RETURN product.name, r.units"
        )

        package = {'name': self.name, 'price': self.price, 'units': self.units}

        # Dictionary comprehensions
        if len(rows_pizzas) != 0:
            package['pizzas'] = {row[0]: row[1] for row in rows_pizzas}

        if len(rows_comps) != 0:
            package['complements'] = {row[0]: row[1] for row in rows_comps}

        if len(rows_drinks) != 0:
            package['drinks'] = {row[0]: row[1] for row in rows_drinks}

        if len(rows_sauces) != 0:
            package['sauces'] = {row[0]: row[1] for row in rows_sauces}

        metrics_query_count.labels(object='Package', method='json').inc()
        return package
 def json(self):
     metrics_query_count.labels(object='Sauce', method='json').inc()
     return {
         'name': self.name,
         'price': self.price,
         'units': self.units,
         'description': self.description
     }
 def json(self):
     metrics_query_count.labels(object='Drink', method='json').inc()
     return {
         'name': self.name,
         'price': self.price,
         'units': self.units,
         'brand': self.brand,
         'litres': self.litres
     }
 def json(self):
     metrics_query_count.labels(object='Complement', method='json').inc()
     return {
         'name': self.name,
         'price': self.price,
         'units': self.units,
         'ingredients': [ingredient for ingredient in self.ingredients],
         'description': self.description
     }
 def json(self):
     metrics_query_count.labels(object='Pizza', method='json').inc()
     return {
         'name': self.name,
         'price': self.price,
         'units': self.units,
         'ingredients': [ingredient for ingredient in self.ingredients],
         'form': self.form
     }
 def json(cls):
     metrics_query_count.labels(object='Products', method='json').inc()
     return {
         "Pizzas": [pizza.json() for pizza in Pizza.nodes.all()],
         "Complements":
         [complement.json() for complement in Complement.nodes.all()],
         "Drinks": [drink.json() for drink in Drink.nodes.all()],
         "Sauces": [sauce.json() for sauce in Sauce.nodes.all()],
         "Packages": [package.json() for package in Package.nodes.all()]
     }
Exemple #7
0
    def load_users(cls):
        # Encrypted Secret files
        file_encryption_key = open('/run/secrets/encryption_key', 'rb')
        encryption_key = file_encryption_key.read()
        file_encryption_key.close()
        fer = Fernet(encryption_key)

        file_default_app_user_name = open('/run/secrets/default_app_user_name',
                                          'rb')
        file_default_app_user_password = open(
            '/run/secrets/default_app_user_password', 'rb')
        file_default_app_admin_name = open(
            '/run/secrets/default_app_admin_name', 'rb')
        file_default_app_admin_password = open(
            '/run/secrets/default_app_admin_password', 'rb')

        decrypted_default_app_user_name = fer.decrypt(
            file_default_app_user_name.read())
        decrypted_default_app_admin_name = fer.decrypt(
            file_default_app_admin_name.read())

        decoded_default_app_user_name = base64.b64decode(
            decrypted_default_app_user_name)
        decoded_default_app_admin_name = base64.b64decode(
            decrypted_default_app_admin_name)

        decoded_default_app_user_name = decoded_default_app_user_name.decode()
        decoded_default_app_admin_name = decoded_default_app_admin_name.decode(
        )

        # noinspection PyTypeChecker
        User.get_or_create({
            "name":
            decoded_default_app_user_name.strip(),
            "password":
            file_default_app_user_password.read().strip().decode()
        })

        # noinspection PyTypeChecker
        Administrator.get_or_create({
            "name":
            decoded_default_app_admin_name.strip(),
            "password":
            file_default_app_admin_password.read().strip().decode()
        })

        file_default_app_user_name.close()
        file_default_app_user_password.close()
        file_default_app_admin_name.close()
        file_default_app_admin_password.close()

        metrics_query_count.labels(object='Catalog', method='load_users').inc()
Exemple #8
0
    def load_relations(cls):
        pepperoni_clasica = Pizza.find_by_name("Pepperoni Clásica")
        crazy_bread = Complement.find_by_name("Crazy Bread")
        any_drink = Drink.find_by_name("Any")
        crazy_sauce = Sauce.find_by_name("Crazy Sauce")

        pkg_comida_completa = Package.find_by_name("Comida Completa")
        pkg_comida_completa.rel_pizza.connect(pepperoni_clasica, {
            'units': 1
        }).save()
        pkg_comida_completa.rel_complement.connect(crazy_bread, {
            'units': 1
        }).save()
        pkg_comida_completa.rel_drink.connect(any_drink, {'units': 1}).save()
        pkg_comida_completa.rel_sauce.connect(crazy_sauce, {'units': 1}).save()

        pkg_fiesta = Package.find_by_name("Paquete Fiesta")
        pkg_fiesta.rel_pizza.connect(pepperoni_clasica, {'units': 2}).save()
        pkg_fiesta.rel_complement.connect(crazy_bread, {'units': 1}).save()
        pkg_fiesta.rel_drink.connect(any_drink, {'units': 1}).save()
        pkg_fiesta.rel_sauce.connect(crazy_sauce, {'units': 1}).save()

        pkg_crazy_combo = Package.find_by_name("Crazy Combo")
        pkg_crazy_combo.rel_complement.connect(crazy_bread, {
            'units': 1
        }).save()
        pkg_crazy_combo.rel_sauce.connect(crazy_sauce, {'units': 1}).save()

        tree_meat_treat = Pizza.find_by_name("3 MEAT TREAT")
        hula_hawaiian = Pizza.find_by_name("HULA HAWAIIAN")
        pepsi = Drink.find_by_name("Pepsi")
        mirinda = Drink.find_by_name("Mirinda")
        manzana = Drink.find_by_name("Manzana")

        pkg_fiesta = Package.find_by_name("Ultra Big")
        pkg_fiesta.rel_pizza.connect(tree_meat_treat, {'units': 2}).save()
        pkg_fiesta.rel_pizza.connect(hula_hawaiian, {'units': 2}).save()
        pkg_fiesta.rel_complement.connect(crazy_bread, {'units': 1}).save()
        pkg_fiesta.rel_drink.connect(pepsi, {'units': 1}).save()
        pkg_fiesta.rel_drink.connect(mirinda, {'units': 1}).save()
        pkg_fiesta.rel_drink.connect(manzana, {'units': 1}).save()
        pkg_fiesta.rel_sauce.connect(crazy_sauce, {'units': 4}).save()

        metrics_query_count.labels(object='Catalog',
                                   method='load_relations').inc()
 def json_full(self):
     metrics_query_count.labels(object=type(self).__name__,
                                method='json').inc()
     return {'name': self.name, 'password': self.password}
 def json(self):
     metrics_query_count.labels(object=type(self).__name__,
                                method='json').inc()
     return {'name': self.name}
 def delete_from_db(self):
     metrics_query_count.labels(object=type(self).__name__,
                                method='delete_from_db').inc()
     self.delete()
 def save_to_db(self):
     metrics_query_count.labels(object=type(self).__name__,
                                method='save_to_db').inc()
     self.save()
 def find_by_name(cls, name=None):
     metrics_query_count.labels(object=type(cls).__name__,
                                method='find_by_name').inc()
     return cls.nodes.first_or_none(name=name)
Exemple #14
0
    def load_nodes(cls):
        # noinspection PyTypeChecker
        Pizza.create_or_update(
            {
                "name":
                "Crazy Crunch",
                "units":
                1,
                "price":
                99.9,
                "form":
                "REDONDA",
                "ingredients": [
                    "QUESO", "PEPPERONI", "ORILLA DE CHICHARRÓN DE QUESO",
                    "PARMESANO"
                ]
            }, {
                "name": "Pepperoni Clásica",
                "units": 1,
                "price": 79.0,
                "form": "REDONDA",
                "ingredients":
                ["QUESO MOZZARELLA", "QUESO MUENSTER", "PEPPERONI"]
            }, {
                "name":
                "3 MEAT TREAT",
                "units":
                1,
                "price":
                120,
                "form":
                "REDONDA",
                "ingredients": [
                    "QUESO MOZZARELLA", "QUESO MUENSTER", "PEPPERONI",
                    "SALCHICHA ITALIANA", "TOCINO"
                ]
            }, {
                "name":
                "ULTIMATE SUPREME",
                "units":
                1,
                "price":
                120,
                "form":
                "REDONDA",
                "ingredients": [
                    "QUESO MOZZARELLA", "QUESO MUENSTER", "PEPPERONI",
                    "SALCHICHA ITALIANA", "CHAMPIÑOES", "CEBOLLA",
                    "PIMIENTOS VERDES"
                ]
            }, {
                "name":
                "HULA HAWAIIAN",
                "units":
                1,
                "price":
                120,
                "form":
                "REDONDA",
                "ingredients":
                ["QUESO MOZZARELLA", "QUESO MUENSTER", "PIÑA", "JAMÓN"]
            }, {
                "name": "QUESO",
                "units": 1,
                "price": 120,
                "form": "REDONDA",
                "ingredients": ["QUESO MOZZARELLA", "QUESO MUENSTER"]
            }, {
                "name":
                "DEEP!DEEP! DISH",
                "units":
                1,
                "price":
                120,
                "form":
                "CUADRADA",
                "ingredients": [
                    "QUESO MOZZARELLA", "QUESO MUENSTER", "PEPPERONI",
                    "CRUJIENTE AJO"
                ]
            })

        # noinspection PyTypeChecker
        Complement.create_or_update(
            {
                "name": "Crazy Bread Relleno",
                "units": 5,
                "price": 50,
                "description": "Palitos de Pan",
                "ingredients": ["MANTEQUILLA CON AJO", "PARMESANO"]
            }, {
                "name": "Crazy Bread",
                "units": 8,
                "price": 49,
                "description": "8 Palitos de Pan",
                "ingredients":
                ["AJO", "MANTEQUILLA", "QUESO PARMESANO", "PAN"]
            }, {
                "name":
                "ITALIAN CHEESE BREAD",
                "units":
                10,
                "price":
                52,
                "description":
                "10 piezas de pan recién horneado",
                "ingredients": [
                    "MASA CRUJIENTE", "QUESO MOZZARELLA", "QUESO MUENSTER",
                    "CONDIMENTOS"
                ]
            }, {
                "name": "CAESAR WINGS",
                "units": 8,
                "price": 80,
                "description": "Alitas de Pollo",
                "ingredients": ["SALSA TIPO BUFFALO", "SPICY BBQ", "BBQ"]
            })

        # noinspection PyTypeChecker
        Drink.create_or_update(
            {
                "name": "Pepsi",
                "units": 1,
                "price": 18.00,
                "brand": "PEPSI",
                "litres": 2
            }, {
                "name": "Mirinda",
                "units": 1,
                "price": 18.50,
                "brand": "PEPSI",
                "litres": 2
            }, {
                "name": "Manzana",
                "units": 1,
                "price": 18.50,
                "brand": "PEPSI",
                "litres": 2
            }, {
                "name": "Any",
                "units": 1,
                "price": 18,
                "brand": "PEPSI",
                "litres": 2
            })

        # noinspection PyTypeChecker
        Sauce.create_or_update({
            "name": "Crazy Sauce",
            "units": 1,
            "price": 10,
            "description": "red, 75ml"
        })

        # noinspection PyTypeChecker
        Package.create_or_update(
            {
                "name": "Comida Completa",
                "units": 1,
                "price": 150,
                "pizzas": ["Pepperoni Clásica"],
                "complements": ["Crazy Bread"],
                "drinks": ["Any"],
                "sauces": ["Crazy Sauce"]
            }, {
                "name": "Paquete Fiesta",
                "units": 1,
                "price": 200,
                "pizzas": ["Pepperoni Clásica"],
                "complements": ["Crazy Bread"],
                "drinks": ["Any"],
                "sauces": ["Crazy Sauce"]
            }, {
                "name": "Crazy Combo",
                "units": 1,
                "price": 60,
                "pizzas": None,
                "complements": ["Crazy Bread"],
                "drinks": None,
                "sauces": ["Crazy Sauce"]
            }, {
                "name": "Ultra Big",
                "units": 1,
                "price": 450,
                "pizzas": ["3 MEAT TREAT", "HULA HAWAIIAN"],
                "complements": ["Crazy Bread"],
                "drinks": ["Pepsi", "Mirinda", "Manzana"],
                "sauces": ["Crazy Sauce"]
            })

        metrics_query_count.labels(object='Catalog', method='load_nodes').inc()