def create_relation(): data = request.json statement = ("MATCH (e:Egresso {chave: $egresso})" "MATCH (c:Empresa {chave: $empresa})" "CREATE (e)-[:Trabalha {desde: $data}]->(c)") driver.session().run(statement, egresso=data["egresso"], empresa=data["empresa"], data=data['data']) return {"msg": "Relacionamento criado com sucesso!"}
def list_relation_trabalhou(id): data = request.json statement = ( "MATCH(e:Egresso {chave: $id})-[t:Trabalha]->(c:Empresa {chave: $id_empresa})" "CREATE(e)-[:Trabalhou {de: t.desde, ate: $data}]->(c)" "DELETE(t)") driver.session().run(statement, id=id, id_empresa=data["empresa"], data=data["data"]) return {"msg": "Relacionamento atualizado!"}
def update_company(id): colecao = mongo.empresas data = request.json colecao.update_one({"_id": ObjectId(id)}, {"$set": data}) # Atualiza empresa no neo4j query = ("MATCH(c:Empresa {chave: $company_id}) " "SET c.nome = $company_name") with driver.session() as session: session.run(query, company_name=data['nome'], company_id=id) return {"msg": "Empresa atualizada com sucesso"}
def list_relation_egresso(id): statement = ( "MATCH(c:Empresa)<-[t:Trabalha]-(e:Egresso {chave: $id}) return c.chave, t.desde " ) result = driver.session().run(statement, id=id) response = [] for record in result: company = detail_company(record[0]) company["desde"] = record[1] response.append(company) return jsonify(response)
def list_relation_company(id): statement = ( "MATCH(e:Egresso)-[t:Trabalha]->(c:Empresa {chave: $id}) return e.chave, t.desde " ) result = driver.session().run(statement, id=id) response = [] for record in result: graduate = detail_graduate(record[0]) graduate["desde"] = record[1] response.append(graduate) return jsonify(response)
def update_graduate(id): colecao = mongo.egressos data = request.json colecao.update_one({"_id": ObjectId(id)}, {"$set": data}) # Atualizar egresso no neo4j query = ("MATCH(e:Egresso {chave: $egresso_id})" "SET e.nome = $egresso_name") with driver.session() as session: session.run(query, egresso_name=data['nome'], egresso_id=id) return {"msg": "Egresso atualizado com sucesso"}
def create_graduate(): colecao = mongo.egressos data = request.json # Verifica se já existe um egresso com a matricula informada egressos = colecao.find({"matricula": data['matricula']}) for _ in egressos: return { "msg": "Já existe um egresso registrado com a matrícula informada" }, 403 # Insere egresso no mongo egresso = colecao.insert_one(data) # Insere egresso no neo4j query = "CREATE(:Egresso {nome: $egresso_name, chave: $egresso_id})" with driver.session() as session: session.run(query, egresso_name=data['nome'], egresso_id=str(egresso.inserted_id)) return {"msg": "Egresso registrado com sucesso"}
def create_company(): colecao = mongo.empresas data = request.json # Verifica se já existe uma empresa com o nome informado empresas = colecao.find({"nome": data['nome']}) for _ in empresas: return { "msg": "Já existe uma empresa registrada com o nome informado" }, 403 # Insere empresa empresa = colecao.insert_one(data) # Insere empresa no neo4j query = "CREATE(:Empresa {nome: $company_name, chave: $company_id})" with driver.session() as session: session.run(query, company_name=data['nome'], company_id=str(empresa.inserted_id)) return {"msg": "Empresa registrada com sucesso"}