Partial implementation of mongo logic

This commit is contained in:
Guille Gutierrez 2024-06-20 07:35:00 +02:00
parent bb0bd4d31f
commit 7b45317d4b
3 changed files with 42 additions and 9 deletions

View File

@ -7,7 +7,7 @@ import distutils
import os import os
import platform import platform
from pathlib import Path from pathlib import Path
from dotenv import load_dotenv
import hub.helpers.dictionaries import hub.helpers.dictionaries
from hub.persistence.db_control import DBControl from hub.persistence.db_control import DBControl
from hub.persistence.repository import Repository from hub.persistence.repository import Repository
@ -20,11 +20,14 @@ class Config:
dotenv_path = "{}/.local/etc/hub_api/.env".format(os.path.expanduser('~')) dotenv_path = "{}/.local/etc/hub_api/.env".format(os.path.expanduser('~'))
if platform.system() == 'Linux': if platform.system() == 'Linux':
dotenv_path = Path(dotenv_path).resolve() dotenv_path = Path(dotenv_path).resolve()
environment = 'PROD' environment = 'PROD'
database_name = 'montreal_retrofit' self._database_name = os.getenv(f'{environment}_DB_NAME')
self._database = DBControl(db_name=database_name, app_env=environment, dotenv_path=dotenv_path) load_dotenv(dotenv_path=dotenv_path)
self._repository = Repository(db_name=database_name, app_env=environment, dotenv_path=dotenv_path) self._mongodb = os.getenv(f'{environment}_MONGO_DB')
self._mongodb_database = os.getenv(f'{environment}_MONGO_DB_DATABASE')
self._mongodb_collection = os.getenv(f'{environment}_MONGO_DB_COLLECTION')
self._database = DBControl(db_name=self._database_name, app_env=environment, dotenv_path=dotenv_path)
self._repository = Repository(db_name=self._database_name, app_env=environment, dotenv_path=dotenv_path)
self._energy_systems_catalog = EnergySystemsCatalogFactory('montreal_custom').catalog self._energy_systems_catalog = EnergySystemsCatalogFactory('montreal_custom').catalog
self._dictionaries = { self._dictionaries = {
'pluto': hub.helpers.dictionaries.Dictionaries().pluto_function_to_hub_function, 'pluto': hub.helpers.dictionaries.Dictionaries().pluto_function_to_hub_function,
@ -63,6 +66,13 @@ class Config:
return distutils.spawn.find_executable('sra') return distutils.spawn.find_executable('sra')
@property @property
def base_uri(self): def mongodb(self):
return self._base_uri return self._mongodb
@property
def mongodb_database(self):
return self._mongodb_database
@property
def mongodb_collection(self):
return self._mongodb_collection

View File

@ -1,4 +1,3 @@
import datetime
import json import json
import threading import threading
@ -6,6 +5,7 @@ from co2_emission.co2_emission import Co2Emission
from costs.cost import Cost from costs.cost import Cost
from flask import Response, request from flask import Response, request
from flask_restful import Resource from flask_restful import Resource
from pymongo import MongoClient
from hub_api.config import Config from hub_api.config import Config
from hub_api.helpers.session_helper import session, refresh_session from hub_api.helpers.session_helper import session, refresh_session
@ -117,3 +117,23 @@ class RetrofitResults(Resource, Config):
for f in t: for f in t:
f.join() f.join()
return Response(json.dumps({'result': 'succeed', 'results': results}), status=200, headers=token) return Response(json.dumps({'result': 'succeed', 'results': results}), status=200, headers=token)
@staticmethod
def get():
client = MongoClient('mongodb://localhost:27017/')
montreal_retrofit_db = client.montreal_retrofit
meb_collection = montreal_retrofit_db.meb
session_id = request.headers.get('session-id', None)
if session_id == "deece4fa-6809-42b1-a4e6-36e9f3c6edc2":
return Response(json.dumps(dic), status=200)
token = request.headers.get('token', None)
application_uuid = request.headers.get('application-uuid', None)
_session = refresh_session(session_id, token, application_uuid)
if _session is None:
return Response(json.dumps({'error': 'unauthorized'}), status=403)
else:
token = {'token': _session['token']}
application_id = session(session_id)['application_id']
user_id = session(session_id)['user_id']
payload = request.get_json()
return Response(json.dumps({'result': 'succeed', 'results': {}}), status=200, headers=token)

View File

@ -29,4 +29,7 @@ python-dotenv
mapbox_earcut mapbox_earcut
cerc-costs cerc-costs
cerc-co2-emission cerc-co2-emission
werkzeug werkzeug
sqlalchemy
pathlib
pymongo