def add_tariff(self, data, session, curs=None): # checking parent tariff exist pt_id = data['parent_tariff_id'] currency = data.get('currency', None) t_data = { 'environment_id': session.environment_id, 'parent_tariff_id': pt_id, 'name': data['name'], 'type': data['type'], 'status': data['status'] } if pt_id is not None: if currency is not None: raise NonParentTariffWithCurrency else: t_f = TariffFilter(session, {'id': pt_id}, {}, None) t_f.filter_one_obj(curs) elif currency is None: raise ParentTariffWithoutCurrency else: c_f = CurrencyFilter({'code': currency}, {}, None) c = c_f.filter_one_obj(curs) t_data['currency_id'] = c.id t = Tariff(**t_data) mapping.insert(curs, t) return response_ok(id=t.id)
def apply_draft_rules(self, data, session, curs=None): t_f = TariffFilter(session, {'id': data['tariff_id']}, {}, None) t_f.filter_one_obj(curs) f = RuleFilter(session, {'tariff_id': data['tariff_id']}, {}, ['id']) rs = f.filter_objs(curs, for_update=True) checker = RuleChecker() for r in rs: if r.draft_rule: checker.check(r.draft_rule) r.rule = r.draft_rule r.draft_rule = None mapping.update(curs, r) return response_ok()
def apply_draft_rules(self, data, session, curs=None): t_f = TariffFilter(session, {'id': data['tariff_id']}, {}, None) t_f.filter_one_obj(curs) f = RuleFilter(session, {'tariff_id': data['tariff_id']}, {}, ['id']) rs = f.filter_objs(curs, for_update=True) checker = RuleChecker() for r in rs: if r.draft_rule: checker.check(r.draft_rule) r.rule = r.draft_rule r.draft_rule = None mapping.update(curs, r) return response_ok()
def add_tariff_viewing_context(self, data, session, curs=None): # checking parent tariff exist t_id = data['tariff_id'] t_f = TariffFilter(session, {'id': t_id}, {}, None) t_f.filter_one_obj(curs) raw_ctx = data['context'] ctx = self._collapse_context(raw_ctx) t_v_data = {'environment_id': session.environment_id, 'tariff_id': t_id, 'name': data['name'], 'view_order': data['view_order'], 'context': ctx} t_v_ctx = TariffViewingContext(**t_v_data) mapping.insert(curs, t_v_ctx) return response_ok(id=t_v_ctx.id)
def delete_tariff(self, data, session, curs=None): f = TariffFilter(session, {'id': data['id']}, {}, None) try: mapping.delete(curs, f.filter_one_obj(curs)) except ObjectDeletionError: raise TariffUsed('Tariff %s used' % data['id']) return response_ok()
def add_user_tariff(self, data, session, curs=None): # checking tariff exist t_id = data['tariff_id'] u_id = data['user_id'] if t_id: t_f = TariffFilter(session, {'id': t_id}, {}, None) t_f.filter_one_obj(curs) ut_data = {'environment_id': session.environment_id, 'tariff_id': t_id, 'user_id': u_id} ut = UserTariff(**ut_data) try: mapping.insert(curs, ut) except ObjectCreationError: raise UserTariffAlreadyExsits(tariff_id=t_id, user_id=u_id) return response_ok(id=ut.id)
def modify_tariff_viewing_context(self, data, session, curs=None): f = TariffViewingContextFilter(session, {'id': data.get('id')}, {}, None) loader = partial(f.filter_one_obj, curs, for_update=True) if 'new_tariff_id' in data: t_id = data.get('new_tariff_id') t_f = TariffFilter(session, {'id': t_id}, {}, None) t_f.filter_one_obj(curs) if 'new_context' in data: data['new_context'] = self._collapse_context(data['new_context']) data = mapping.objects.serialize_field(data, 'new_context', 'new_serialized_context') self.update_obj(curs, data, loader) return response_ok()
def delete_tariff(self, data, session, curs=None): f = TariffFilter(session, {'id': data['id']}, {}, None) try: mapping.delete(curs, f.filter_one_obj(curs)) except ObjectDeletionError: raise TariffUsed('Tariff %s used' % data['id']) return response_ok()
def modify_tariff_viewing_context(self, data, session, curs=None): f = TariffViewingContextFilter(session, {'id': data.get('id')}, {}, None) loader = partial(f.filter_one_obj, curs, for_update=True) if 'new_tariff_id' in data: t_id = data.get('new_tariff_id') t_f = TariffFilter(session, {'id': t_id}, {}, None) t_f.filter_one_obj(curs) if 'new_context' in data: data['new_context'] = self._collapse_context(data['new_context']) data = mapping.objects.serialize_field(data, 'new_context', 'new_serialized_context') self.update_obj(curs, data, loader) return response_ok()
def add_user_tariff(self, data, session, curs=None): # checking tariff exist t_id = data['tariff_id'] u_id = data['user_id'] if t_id: t_f = TariffFilter(session, {'id': t_id}, {}, None) t_f.filter_one_obj(curs) ut_data = { 'environment_id': session.environment_id, 'tariff_id': t_id, 'user_id': u_id } ut = UserTariff(**ut_data) try: mapping.insert(curs, ut) except ObjectCreationError: raise UserTariffAlreadyExsits(tariff_id=t_id, user_id=u_id) return response_ok(id=ut.id)
def add_tariff_viewing_context(self, data, session, curs=None): # checking parent tariff exist t_id = data['tariff_id'] t_f = TariffFilter(session, {'id': t_id}, {}, None) t_f.filter_one_obj(curs) raw_ctx = data['context'] ctx = self._collapse_context(raw_ctx) t_v_data = { 'environment_id': session.environment_id, 'tariff_id': t_id, 'name': data['name'], 'view_order': data['view_order'], 'context': ctx } t_v_ctx = TariffViewingContext(**t_v_data) mapping.insert(curs, t_v_ctx) return response_ok(id=t_v_ctx.id)
def add_tariff(self, data, session, curs=None): # checking parent tariff exist pt_id = data['parent_tariff_id'] currency = data.get('currency', None) t_data = {'environment_id': session.environment_id, 'parent_tariff_id': pt_id, 'name': data['name'], 'type': data['type'], 'status': data['status']} if pt_id is not None: if currency is not None: raise NonParentTariffWithCurrency else: t_f = TariffFilter(session, {'id': pt_id}, {}, None) t_f.filter_one_obj(curs) elif currency is None: raise ParentTariffWithoutCurrency else: c_f = CurrencyFilter({'code': currency}, {}, None) c = c_f.filter_one_obj(curs) t_data['currency_id'] = c.id t = Tariff(**t_data) mapping.insert(curs, t) return response_ok(id=t.id)