Spaces:
Build error
Build error
File size: 1,585 Bytes
5b2e817 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
import uuid
from app.configs.database import firebase_bucket, firebase_db
# CRUD operation
def upload_file_cvs(file):
re_name_file = str(uuid.uuid4()).replace("-","_") + "_" + file.filename
# upload file to firebase storage
blob = firebase_bucket.blob(re_name_file)
blob.upload_from_file(file.file)
# return gs link
return f"gs://{firebase_bucket.name}/{re_name_file}"
def remove_file_cvs(file_url):
# remove file from firebase storage using "gs://" link
blob = firebase_bucket.blob(file_url.split(f"gs://{firebase_bucket.name}/")[1])
blob.delete()
return True
def get_all_cvs():
# Get all documents from the collection
docs = firebase_db.collection("cvs").stream()
data = []
for doc in docs:
doc_data = doc.to_dict()
doc_data["id_cv"] = doc.id
data.append(doc_data)
return data
def get_cv_by_id(id):
# Get a document by id
doc = firebase_db.collection("cvs").document(id).get()
return doc.to_dict()
def create_cv(data):
# get file_cvs
file_cvs = data["cv_url"]
# upload file to firebase storage
file_url = upload_file_cvs(file_cvs)
# add file url to data
data["cv_url"] = file_url
# Create a new document
document_ref = firebase_db.collection("cvs").add(data)
# document_id = document_ref[1].id
return True
def delete_cv(id):
# Delete a file from firebase storage
file_url = get_cv_by_id(id)["cv_url"]
remove_file_cvs(file_url)
# Delete a document by id
firebase_db.collection("cvs").document(id).delete()
return True
|