def db_associate_context_receivers(session, context, receiver_ids): """ Transaction for associating receivers to a context :param session: An ORM session :param context: The context on which associate the specified receivers :param receiver_ids: A list of receivers ids to be associated to the context """ db_del(session, models.ReceiverContext, models.ReceiverContext.context_id == context.id) if not receiver_ids: return if not session.query(models.Context).filter( models.Context.id == context.id, models.Context.tid == models.User.tid, models.User.id.in_(receiver_ids)).count(): raise errors.InputValidationError() for i, receiver_id in enumerate(receiver_ids): session.add( models.ReceiverContext({ 'context_id': context.id, 'receiver_id': receiver_id, 'order': i }))
def db_associate_context_receivers(store, context, receivers_ids): store.find(models.ReceiverContext, models.ReceiverContext.context_id == context.id).remove() for receiver_id in receivers_ids: store.add( models.ReceiverContext({ 'context_id': context.id, 'receiver_id': receiver_id }))
def db_associate_context_receivers(session, tid, context, receiver_ids): session.query(models.ReceiverContext).filter(models.ReceiverContext.context_id == context.id).delete(synchronize_session='fetch') if not receiver_ids: return if not session.query(models.Context).filter(models.Context.id == context.id, models.Context.tid == models.User.tid, models.User.id.in_(receiver_ids)).count: raise errors.InputValidationError() for i, receiver_id in enumerate(receiver_ids): session.add(models.ReceiverContext({'context_id': context.id, 'receiver_id': receiver_id, 'presentation_order': i}))