def create_message_from_json(json): channel = create_channel_from_json(json['channel']) message = models.Message() message.created_at = get_datetime_from_json_attr(json, 'created_at') message.updated_at = get_datetime_from_json_attr(json, 'updated_at') message.text = json['text'] message.meta = create_metas_from_json(json['meta']) message.channel_id = channel.id message.channel = channel return message
def manage_message_db(impact, json, messages_json, messages_db, client_id): for message_json in json['messages']: if message_json["channel"]["id"] in messages_db: msg = messages_db[message_json["channel"]["id"]] mapper.fill_from_json(msg, message_json, mapper.message_mapping) clean_message(msg, msg.channel.content_type) manage_message_meta(msg, message_json) else: message = models.Message() message.impact_id = impact.id mapper.fill_from_json(message, message_json, mapper.message_mapping) channel = models.Channel.get(message.channel_id, client_id) clean_message(message, channel.content_type) impact.insert_message(message) manage_message_meta(message, message_json) messages_db[message.channel_id] = message
def manage_message(impact, json): messages_db = dict((msg.channel_id, msg) for msg in impact.messages) messages_json = dict() if 'messages' in json: messages_json = dict( (msg["channel"]["id"], msg) for msg in json['messages']) for message_json in json['messages']: if message_json["channel"]["id"] in messages_db: msg = messages_db[message_json["channel"]["id"]] mapper.fill_from_json(msg, message_json, mapper.message_mapping) else: message = models.Message() message.impact_id = impact.id mapper.fill_from_json(message, message_json, mapper.message_mapping) impact.insert_message(message) messages_db[message.channel_id] = message difference = set(messages_db) - set(messages_json) for diff in difference: impact.delete_message(messages_db[diff])