def find_one(cls, collection, field, value): if collection == 'customers': return Customer.fromjson(cls.db[collection].find_one({field: value})) if collection == 'prepaids': return Prepaid.fromjson(cls.db[collection].find_one({field: value})) if collection == 'postpaids': return Postpaid.fromjson(cls.db[collection].find_one({field: value})) if collection == 'setups': return Setup.fromjson(cls.db[collection].find_one({field: value})) if collection == 'how_to_pays': return HowToPay.fromjson(cls.db[collection].find_one({field: value})) if collection == 'how_to_topups': return HowToTopup.fromjson(cls.db[collection].find_one({field: value})) if collection == 'accounts': account = cls.db[collection].find_one({field: value}) if account is not None: return Account.fromjson(cls.find_by_id('customers', account['customer']), cls.find_by_id('prepaids', account['package']), account) else: return None if collection == 'bills': bill = cls.db[collection].find({field: value}).sort('payment_date', -1)[0] if bill is not None: return Bill.fromjson(bill, cls.find_by_id('customers', bill['customer']), cls.find_by_id('postpaids', bill['package'])) else: return None
def find_by_id(cls, collection, id): if collection == 'customers': return Customer.fromjson(cls.db[collection].find_one({'_id': ObjectId(id)})) if collection == 'prepaids': return Prepaid.fromjson(cls.db[collection].find_one({'_id': ObjectId(id)})) if collection == 'postpaids': return Postpaid.fromjson(cls.db[collection].find_one({'_id': ObjectId(id)})) if collection == 'accounts': return Account.fromjson(cls.db[collection].find_one({'_id': ObjectId(id)})) if collection == 'bills': return Bill.fromjson(cls.db[collection].find_one({'_id': ObjectId(id)}))
def find_list(cls, collection, field, value): list = [] results = cls.db[collection].find({field: value}) for result in results: if collection == 'customers': list.append(Customer.fromjson(result)) elif collection == 'prepaids': list.append(Prepaid.fromjson(result)) elif collection == 'postpaids': list.append(Postpaid.fromjson(result)) elif collection == 'accounts': list.append(Account.fromjson(result)) elif collection == 'bills': list.append(Bill.fromjson(result)) return list