New Addon
Google BK
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import firebase_admin
|
||||
from firebase_admin import credentials
|
||||
from firebase_admin import firestore
|
||||
from datetime import datetime
|
||||
from backup.config import Setting, Config
|
||||
from .cloudlogger import CloudLogger
|
||||
from injector import inject, singleton
|
||||
|
||||
|
||||
@singleton
|
||||
class ErrorStore():
|
||||
@inject
|
||||
def __init__(self, logger: CloudLogger, config: Config):
|
||||
try:
|
||||
cred = credentials.ApplicationDefault()
|
||||
firebase_admin.initialize_app(cred, {
|
||||
'projectId': config.get(Setting.SERVER_PROJECT_ID),
|
||||
})
|
||||
self.db = firestore.client()
|
||||
except Exception as e:
|
||||
logger.log_struct({
|
||||
"error": "unable to initialize firestore, errors will not be logged to firestore. If you are running this on a developer machine, this error is normal.",
|
||||
"exception": str(e)
|
||||
})
|
||||
self.db = None
|
||||
self.last_error = None
|
||||
|
||||
def store(self, error_data):
|
||||
if self.db is not None:
|
||||
doc_ref = self.db.collection(u'error_reports').document(error_data.get('client', "unknown") + "-" + datetime.now().isoformat())
|
||||
doc_ref.set(error_data)
|
||||
self.last_error = error_data
|
||||
Reference in New Issue
Block a user