File size: 1,599 Bytes
428a607
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
55
56
57
58
59
60
from firebase_config import firebase_db


class Lecturer:
    def __init__(self, id=None, nama=None, kelompok_bidang_keahlian=None, foto=None):
        self.id = id
        self.nama = nama
        self.kelompok_bidang_keahlian = kelompok_bidang_keahlian
        self.foto = foto


    def save(self):
        _, doc = firebase_db.collection('lecturers').add({
            'nama': self.nama,
            'kelompok_bidang_keahlian': self.kelompok_bidang_keahlian,
            'foto': self.foto
        })

        self.id  = doc.id

        return self
    

    def delete(self):
        firebase_db.collection('lecturers').document(self.id).delete()

        return self
    

    def update(self):
        firebase_db.collection('lecturers').document(self.id).update({
            'nama': self.nama,
            'kelompok_bidang_keahlian': self.kelompok_bidang_keahlian,
            'foto': self.foto
        })

        return self
    
    
    @staticmethod
    def fetch(kelompok_bidang_keahlian=None):
        query = firebase_db.collection('lecturers').order_by('nama')

        if kelompok_bidang_keahlian is not None:
            query = query.where('kelompok_bidang_keahlian', '==', kelompok_bidang_keahlian)

        lectures = query.stream()

        datas = []
        for lecturer in lectures:
            data = lecturer.to_dict()
            datas.append({
                'id': lecturer.id,
                'nama': data['nama'],
                'kelompok_bidang_keahlian': data['kelompok_bidang_keahlian'],
                'foto': data['foto']
            })

        return datas