THREAD_ATTRIBUTES = ['id', 'status_id', 'priority', 'date_created', 'subject_line'] MESSAGE_ATTRIBUTES = ['id', 'thread_id', 'msg_from', 'msg_to', 'message', 'html'] def thread_attributes(thread, expand=[]): attr_values = {} for attr_name in THREAD_ATTRIBUTES: attr_values[attr_name] = getattr(thread, attr_name) if 'messages' in expand: attr_values['messages'] = message_attributes_list(thread.messages) return attr_values def thread_attributes_list(threads, expand=[]): attrs_list = [] for thread in threads: attrs_list.append(thread_attributes(thread, expand)) return attrs_list def message_attributes(message): attr_values = {} for attr_name in MESSAGE_ATTRIBUTES: attr_values[attr_name] = getattr(message, attr_name) return attr_values def message_attributes_list(messages): attrs_list = [] for message in messages: attrs_list.append(message_attributes(message)) return attrs_list