42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
class AlchemyResponse:
|
|
"""
|
|
alchemy_object = [AlchemyObject].filter_non_deleted() -> AlchemyResponse
|
|
alchemy_object.get(1) -> Get the first object in the list
|
|
alchemy_object.data -> Get the list of objects
|
|
alchemy_object.count -> Get the count of objects
|
|
"""
|
|
|
|
def __init__(self, query, first: bool = False):
|
|
self.first = first
|
|
self.__query = query
|
|
|
|
def get(self, index: int):
|
|
count = self.count
|
|
if count and not index > count:
|
|
return self.data[index - 1]
|
|
return None
|
|
|
|
@property
|
|
def data(self):
|
|
if self.first:
|
|
try:
|
|
return self.__query.first()
|
|
except Exception as e:
|
|
err = e
|
|
self.__query.session.expunge_all()
|
|
return None
|
|
try:
|
|
return self.__query.all()
|
|
except Exception as e:
|
|
err = e
|
|
self.__query.session.expunge_all()
|
|
return []
|
|
|
|
@property
|
|
def count(self):
|
|
return self.__query.count()
|
|
|
|
@property
|
|
def query(self):
|
|
return self.__query
|