File size: 1,586 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
54
import uuid
from app.configs.database import firebase_bucket, firebase_db


# CRUD operation
def upload_file_jds(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_jds(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_jds():
    # Get all documents from the collection
    docs = firebase_db.collection("jds").stream()
    data = []
    for doc in docs:
        doc_data = doc.to_dict()
        doc_data["id_jd"] = doc.id
        data.append(doc_data)
    return data

def get_jd_by_id(id):
    # Get a document by id
    doc = firebase_db.collection("jds").document(id).get()
    return doc.to_dict()

def create_jd(data):
    # get file_jds
    file_jds = data["jd_url"]
    # upload file to firebase storage
    file_url = upload_file_jds(file_jds)
    # add file url to data
    data["jd_url"] = file_url
    # Create a new document
    document_ref = firebase_db.collection("jds").add(data)
    # document_id = document_ref[1].id
    return True

def delete_jd(id):
    # Delete a file from firebase storage
    file_url = get_jd_by_id(id)["jd_url"]
    remove_file_jds(file_url)
    # Delete a document by id
    firebase_db.collection("jds").document(id).delete()
    return True