Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/logs and signature #57

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
refactor: adaptar métodos de leitura de outros dados eleitorais com a…
… simplificação
Guilherme Fumagali Marques committed Aug 2, 2024
commit 183747ec167ee9e0d9d2a3e5cd6bc7dadd085481
29 changes: 20 additions & 9 deletions backend/public/src/controllers/election-data.controller.js
Original file line number Diff line number Diff line change
@@ -2,35 +2,46 @@ const router = require('express').Router();
const election_data_repository = require('../database/repository/election-data.repository');

router.get("/find_by_merkletree_index_range", async (req, res) => {
const data_name = req.query.data_name
const tree_name = req.query.tree_name
const initial_index = req.query.initial_index
const final_index = req.query.final_index

console.info(`[election-data.controller] GET /find_by_merkletree_index_range ${data_name} ${initial_index} ${final_index}`)
console.info(`[election-data.controller] GET /find_by_merkletree_index_range ${tree_name} ${initial_index} ${final_index}`)

const data = await election_data_repository.findByMerkletreeIndexRange(data_name, initial_index, final_index)
const data = await election_data_repository.findByMerkletreeIndexRange(tree_name, initial_index, final_index)

res.json(data)
})

router.get("/find_by_id", async (req, res) => {
const id = req.query.id
const data_name = req.query.data_name
const tree_name = req.query.tree_name

console.info(`[election-data.controller] GET /find_by_id ${data_name} ${id}`)
console.info(`[election-data.controller] GET /find_by_id ${tree_name} ${id}`)

const data = await election_data_repository.findById(data_name, id)
const data = await election_data_repository.findById(tree_name, id)

res.json(data)
})

router.get("/find_by_filename", async (req, res) => {
const filename = req.query.filename
const tree_name = req.query.tree_name

console.info(`[election-data.controller] GET /find_by_filename ${tree_name} ${filename}`)

const data = await election_data_repository.findByFilename(tree_name, filename)

res.json(data)
})

router.get("/download", async (req, res) => {
const id = req.query.id
const data_name = req.query.data_name
const tree_name = req.query.tree_name

console.info(`[election-data.controller] GET /download ${data_name} ${id}`)
console.info(`[election-data.controller] GET /download ${tree_name} ${id}`)

const data = await election_data_repository.findById(data_name, id)
const data = await election_data_repository.findById(tree_name, id)

if (!data) {
res.status(404).send('Not Found')
7 changes: 2 additions & 5 deletions backend/public/src/database/models/election-data.model.js
Original file line number Diff line number Diff line change
@@ -2,15 +2,12 @@ const mongoose = require("mongoose");
const {merkletree_info} = require("./merkletree-info.model");

const schema_election_data = new mongoose.Schema({
data_name: String,
filename: String,
file_name: String,
data: Buffer,
merkletree_info: { type: Object, of: merkletree_info },
zona: Number,
secao: Number,
eleicoes: [Number],
});

schema_election_data.index({ "file_name": 1 });
schema_election_data.index({ "merkletree_info.$**": 1 });

module.exports = { schema_election_data }
22 changes: 17 additions & 5 deletions backend/public/src/database/repository/election-data.repository.js
Original file line number Diff line number Diff line change
@@ -2,8 +2,8 @@ const mongoose = require("mongoose");
const { schema_election_data } = require("../models/election-data.model")


exports.findById = async (data_name, id) => {
const repository = mongoose.model(data_name, schema_election_data, data_name);
exports.findById = async (tree_name, id) => {
const repository = mongoose.model(tree_name, schema_election_data, tree_name);
return await repository.findOne({ _id: id })
.then((data) => {
data._doc.data = Buffer.from(data.data, 'base64').toString('base64')
@@ -14,13 +14,25 @@ exports.findById = async (data_name, id) => {
})
}

exports.findByMerkletreeIndexRange = async (data_name, initial_index, final_index) => {
const repository = mongoose.model(data_name, schema_election_data, data_name);
exports.findByMerkletreeIndexRange = async (tree_name, initial_index, final_index) => {
const repository = mongoose.model(tree_name, schema_election_data, tree_name);
return await repository.find({ "merkletree_info.index": { $gte: parseInt(initial_index), $lte: parseInt(final_index) } }, { data: 0 })
.then((data) => {
return data;
})
.catch((err) => {
console.error(`[ERROR][election-data.repository] ${err}`);
});
};
};

exports.findByFilename = async (tree_name, filename) => {
const repository = mongoose.model(tree_name, schema_election_data, tree_name);
return await repository.findOne({ file_name: filename })
.then((data) => {
data._doc.data = Buffer.from(data.data, 'base64').toString('base64')
return data
})
.catch((err) => {
console.error(`[ERROR][election-data.repository] ${err}`)
})
}