File size: 1,357 Bytes
b39c0ba
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from db.models import Category, Metadata
from db.query.base_query import BaseQuery
from sqlalchemy import select, delete, update

class CategoryQuery(BaseQuery):
    def __init__(self, user):
        super().__init__(user)

    def add_category(self, db, name):
        new_category = Category(name=name, user_id=self.user["id"])
        return self.add(db, new_category)

    def update_category(self, db, category_id, name):
        update_data = {"name": name}
        self.update(db, Category, category_id, update_data)

    def delete_category(self, db, category_id):
        self.delete(db, Category, category_id)

    def get_category(self, db, category_id):
        columns = [Category.category]
        model = Category
        return self.get_columns(db,model=model, columns=columns, id=category_id)

    def get_current_category(self, db, metadata_id):
        columns = [Category.category]
        join_models = [Metadata]
        where_conditions = [Metadata.id == metadata_id]

        result = self.get_with_joins(
            db,
            join_models=join_models,
            filter_conditions=where_conditions,
            columns=columns,
            multiple=False  # Assuming you want a single result
        )
        
        return result

    def get_all_categories(self, db):
        return self.get(db, Category, multiple=True)