Spaces:
Running
Running
import arrow | |
from flask_login import UserMixin | |
from firebase_config import firebase_db | |
from firebase_admin import firestore | |
class User(UserMixin): | |
def __init__(self, id=None, nama=None, email=None, role=None, registered_at=None, inactive=None): | |
self.id = id | |
self.nama = nama | |
self.email = email | |
self.role = role | |
self.registered_at = registered_at | |
self.inactive = inactive | |
def update(self): | |
firebase_db.collection('users').document(self.id).update({ | |
'inactive': self.inactive, | |
}) | |
return self | |
def fetch(): | |
users = firebase_db.collection('users').where('role', '==', 'pengguna').order_by("registered_at", direction=firestore.Query.DESCENDING).stream() | |
datas = [] | |
for user in users: | |
data = user.to_dict() | |
datas.append({ | |
'id': user.id, | |
'nama': data['nama'], | |
'email': data['email'], | |
'role': data['role'], | |
'inactive': data['inactive'], | |
'registered_at': arrow.get(data['registered_at']).to('Asia/Jakarta').format('dddd, DD-MM-YYYY HH:mm:ss', locale='id_ID'), | |
'status_badge': 'danger' if data['inactive'] == "1" else 'success' | |
}) | |
return datas |