def create_message(session, tid, wbtip_id, user_key, receiver_id, content): wbtip, itip, rtip_id = session.query(models.WhistleblowerTip, models.InternalTip, models.ReceiverTip.id) \ .filter(models.WhistleblowerTip.id == wbtip_id, models.ReceiverTip.internaltip_id == wbtip_id, models.ReceiverTip.receiver_id == receiver_id, models.InternalTip.id == models.WhistleblowerTip.id, models.InternalTip.tid == tid).one_or_none() if wbtip is None: raise errors.ModelNotFound(models.WhistleblowerTip) itip.update_date = itip.wb_last_access = datetime_now() msg = models.Message() msg.receivertip_id = rtip_id msg.type = u'whistleblower' if itip.crypto_tip_pub_key: msg.content = base64.b64encode(GCE.asymmetric_encrypt(itip.crypto_tip_pub_key, content)).decode() else: msg.content = content session.add(msg) session.flush() ret = serialize_message(session, msg) ret['content'] = content return ret
def create_message(session, tid, wbtip_id, receiver_id, content): wbtip, itip, rtip_id = db_get(session, (models.WhistleblowerTip, models.InternalTip, models.ReceiverTip.id), (models.WhistleblowerTip.id == wbtip_id, models.ReceiverTip.internaltip_id == wbtip_id, models.ReceiverTip.receiver_id == receiver_id, models.InternalTip.id == models.WhistleblowerTip.id, models.InternalTip.enable_two_way_messages.is_(True), models.InternalTip.status != 'closed', models.InternalTip.tid == tid)) itip.update_date = itip.wb_last_access = datetime_now() _content = content if itip.crypto_tip_pub_key: _content = base64.b64encode(GCE.asymmetric_encrypt(itip.crypto_tip_pub_key, content)).decode() msg = models.Message() msg.receivertip_id = rtip_id msg.type = 'whistleblower' msg.content = _content session.add(msg) session.flush() ret = serialize_message(session, msg) ret['content'] = content return ret
def create_message(session, tid, user_id, rtip_id, content): """ Transaction for registering a new message :param session: An ORM session :param tid: A tenant ID :param user_id: The user id of the user creating the message :param rtip_id: The rtip associated to the message to be created :param content: The content of the message :return: A serialized descriptor of the message """ rtip, itip = db_access_rtip(session, tid, user_id, rtip_id) itip.update_date = rtip.last_access = datetime_now() _content = content if itip.crypto_tip_pub_key: _content = base64.b64encode( GCE.asymmetric_encrypt(itip.crypto_tip_pub_key, content)).decode() msg = models.Message() msg.receivertip_id = rtip.id msg.type = 'receiver' msg.content = _content session.add(msg) session.flush() ret = serialize_message(session, msg) ret['content'] = content return ret
def create_message(store, user_id, rtip_id, request): rtip, itip = db_access_rtip(store, user_id, rtip_id) itip.update_date = rtip.last_access = datetime_now() msg = models.Message() msg.content = request['content'] msg.receivertip_id = rtip.id msg.type = u'receiver' store.add(msg) return serialize_message(store, msg)
def create_message(store, wbtip_id, receiver_id, request): rtip_id, internaltip = store.find( (models.ReceiverTip.id, models.InternalTip), models.ReceiverTip.internaltip_id == wbtip_id, models.InternalTip.id == wbtip_id, models.ReceiverTip.receiver_id == receiver_id).one() if rtip_id is None: raise errors.ModelNotFound(models.ReceiverTip) internaltip.update_date = internaltip.wb_last_access = datetime_now() msg = models.Message() msg.content = request['content'] msg.receivertip_id = rtip_id msg.type = u'whistleblower' store.add(msg) return serialize_message(store, msg)
def create_message(session, tid, wbtip_id, receiver_id, request): rtip_id, internaltip = session.query(models.ReceiverTip.id, models.InternalTip) \ .filter(models.ReceiverTip.internaltip_id == wbtip_id, models.InternalTip.id == wbtip_id, models.ReceiverTip.receiver_id == receiver_id, models.InternalTip.tid == tid).one_or_none() if rtip_id is None: raise errors.ModelNotFound(models.ReceiverTip) internaltip.update_date = internaltip.wb_last_access = datetime_now() msg = models.Message() msg.content = request['content'] msg.receivertip_id = rtip_id msg.type = u'whistleblower' session.add(msg) session.flush() return serialize_message(session, msg)
def create_message(session, tid, user_id, user_key, rtip_id, content): rtip, itip = db_access_rtip(session, tid, user_id, rtip_id) itip.update_date = rtip.last_access = datetime_now() msg = models.Message() msg.receivertip_id = rtip.id msg.type = u'receiver' if itip.crypto_tip_pub_key: msg.content = base64.b64encode(GCE.asymmetric_encrypt(itip.crypto_tip_pub_key, content)).decode() else: msg.content = content session.add(msg) session.flush() ret = serialize_message(session, msg) ret['content'] = content return ret