drafts: Use lists instead of dicts.

We were using a dict to return a sorted list of
formatted drafts, instead of building a list.
This commit is contained in:
Steve Howell
2018-12-16 20:15:32 +00:00
committed by Tim Abbott
parent 29052b36a5
commit e22a50a3e3
2 changed files with 24 additions and 20 deletions

View File

@@ -255,8 +255,8 @@ run_test('format_drafts', () => {
updatedAt: new Date(1549958107000).setDate(-2), updatedAt: new Date(1549958107000).setDate(-2),
}; };
var expected = { var expected = [
id3: { {
draft_id: 'id3', draft_id: 'id3',
is_stream: true, is_stream: true,
stream: 'stream 2', stream: 'stream 2',
@@ -265,28 +265,28 @@ run_test('format_drafts', () => {
raw_content: 'Test Stream Message 2', raw_content: 'Test Stream Message 2',
time_stamp: 'Jan 21', time_stamp: 'Jan 21',
}, },
id4: { {
draft_id: 'id4', draft_id: 'id4',
is_stream: false, is_stream: false,
recipients: 'aaron', recipients: 'aaron',
raw_content: 'Test Private Message 2', raw_content: 'Test Private Message 2',
time_stamp: 'Jan 26', time_stamp: 'Jan 26',
}, },
id5: { {
draft_id: 'id5', draft_id: 'id5',
is_stream: false, is_stream: false,
recipients: 'aaron', recipients: 'aaron',
raw_content: 'Test Private Message 3', raw_content: 'Test Private Message 3',
time_stamp: 'Jan 29', time_stamp: 'Jan 29',
}, },
id2: { {
draft_id: 'id2', draft_id: 'id2',
is_stream: false, is_stream: false,
recipients: 'aaron', recipients: 'aaron',
raw_content: 'Test Private Message', raw_content: 'Test Private Message',
time_stamp: 'Jan 30', time_stamp: 'Jan 30',
}, },
id1: { {
draft_id: 'id1', draft_id: 'id1',
is_stream: true, is_stream: true,
stream: 'stream', stream: 'stream',
@@ -295,7 +295,7 @@ run_test('format_drafts', () => {
raw_content: 'Test Stream Message', raw_content: 'Test Stream Message',
time_stamp: '7:55 AM', time_stamp: '7:55 AM',
}, },
}; ];
blueslip.error = noop; blueslip.error = noop;
$('#drafts_table').append = noop; $('#drafts_table').append = noop;

View File

@@ -202,17 +202,18 @@ exports.remove_old_drafts = remove_old_drafts;
exports.launch = function () { exports.launch = function () {
function format_drafts(data) { function format_drafts(data) {
var drafts = {};
var data_array = [];
_.each(data, function (draft, id) { _.each(data, function (draft, id) {
data_array.push([id, data[id]]); draft.id = id;
}); });
var data_sorted = data_array.sort(function (draft_a, draft_b) {
return draft_a[1].updatedAt - draft_b[1].updatedAt; var unsorted_raw_drafts = _.values(data);
var sorted_raw_drafts = unsorted_raw_drafts.sort(function (draft_a, draft_b) {
return draft_a.updatedAt - draft_b.updatedAt;
}); });
_.each(data_sorted, function (data_element) {
var draft = data_element[1]; function format_draft(draft) {
var id = data_element[0]; var id = draft.id;
var formatted; var formatted;
var time = new XDate(draft.updatedAt); var time = new XDate(draft.updatedAt);
var time_stamp = timerender.render_now(time).time_str; var time_stamp = timerender.render_now(time).time_str;
@@ -231,7 +232,7 @@ exports.launch = function () {
} }
formatted = { formatted = {
draft_id: id, draft_id: draft.id,
is_stream: true, is_stream: true,
stream: stream, stream: stream,
stream_color: stream_data.get_color(draft.stream), stream_color: stream_data.get_color(draft.stream),
@@ -251,7 +252,7 @@ exports.launch = function () {
}).join(', '); }).join(', ');
formatted = { formatted = {
draft_id: id, draft_id: draft.id,
is_stream: false, is_stream: false,
recipients: recipients, recipients: recipients,
raw_content: draft.content, raw_content: draft.content,
@@ -275,9 +276,12 @@ exports.launch = function () {
return; return;
} }
drafts[id] = formatted; return formatted;
}); }
return drafts;
var sorted_formatted_drafts = _.filter(_.map(sorted_raw_drafts, format_draft));
return sorted_formatted_drafts;
} }
function populate_and_fill() { function populate_and_fill() {