:recycle: [Refactor] Separate ChatStorageItem from ChatHistoryStorer
Browse files- networks/chat_history_storer.js +41 -34
networks/chat_history_storer.js
CHANGED
@@ -1,3 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
class ChatHistoryStorer {
|
2 |
constructor() {
|
3 |
this.init_database();
|
@@ -17,27 +50,6 @@ class ChatHistoryStorer {
|
|
17 |
this.render_chat_history_sidebar_items();
|
18 |
console.log("chat_history cleared.");
|
19 |
}
|
20 |
-
|
21 |
-
get_current_datetime_string() {
|
22 |
-
return moment().format("YYYY-MM-DD HH:mm:ss.SSS");
|
23 |
-
}
|
24 |
-
get_chat_container_html() {
|
25 |
-
let messagers_container = $("#messagers-container");
|
26 |
-
if (messagers_container.children().length > 0) {
|
27 |
-
return messagers_container[0].outHTML;
|
28 |
-
} else {
|
29 |
-
return null;
|
30 |
-
}
|
31 |
-
}
|
32 |
-
create_chat_index() {
|
33 |
-
let datetime_string = moment().format("YYYY-MM-DD_HH-mm-ss_SSS");
|
34 |
-
let chat_index = `chat_${datetime_string}`;
|
35 |
-
return chat_index;
|
36 |
-
}
|
37 |
-
create_chat_title() {
|
38 |
-
let chat_title = moment().format("YYYY-MM-DD HH:mm:ss");
|
39 |
-
return chat_title;
|
40 |
-
}
|
41 |
render_chat_history_sidebar_items() {
|
42 |
let chat_history_sidebar_items = $("#chat-history-sidebar-items");
|
43 |
let chat_history = this.db.chat_history;
|
@@ -54,26 +66,21 @@ class ChatHistoryStorer {
|
|
54 |
});
|
55 |
}
|
56 |
save_current_chat_session() {
|
57 |
-
let
|
58 |
-
|
|
|
59 |
console.log("Empty messagers_container, no chat session to save.");
|
60 |
return;
|
61 |
} else {
|
62 |
-
let chat_index = this.create_chat_index();
|
63 |
-
let chat_title = this.create_chat_title();
|
64 |
-
let chat_saved_datetime = this.get_current_datetime_string();
|
65 |
this.db.chat_history.put({
|
66 |
-
index:
|
67 |
-
title:
|
68 |
-
html:
|
69 |
-
saved_datetime:
|
70 |
});
|
71 |
this.render_chat_history_sidebar_items();
|
72 |
-
|
73 |
-
let messagers_container = $("#messagers-container");
|
74 |
-
let messages_count = messagers_container.children().length;
|
75 |
console.log(
|
76 |
-
`${
|
77 |
);
|
78 |
}
|
79 |
}
|
|
|
1 |
+
class ChatStorageItem {
|
2 |
+
constructor(chat_history_storer) {
|
3 |
+
this.chat_history_storer = chat_history_storer;
|
4 |
+
}
|
5 |
+
create_index() {
|
6 |
+
let datetime_string = moment().format("YYYY-MM-DD_HH-mm-ss_SSS");
|
7 |
+
let chat_index = `chat_${datetime_string}`;
|
8 |
+
return chat_index;
|
9 |
+
}
|
10 |
+
create_title() {
|
11 |
+
let chat_title = moment().format("YYYY-MM-DD HH:mm:ss");
|
12 |
+
return chat_title;
|
13 |
+
}
|
14 |
+
get_messagers_container_html() {
|
15 |
+
let messagers_container = $("#messagers-container");
|
16 |
+
if (messagers_container.children().length > 0) {
|
17 |
+
return messagers_container[0].outHTML;
|
18 |
+
} else {
|
19 |
+
return null;
|
20 |
+
}
|
21 |
+
}
|
22 |
+
get_current_datetime_string() {
|
23 |
+
return moment().format("YYYY-MM-DD HH:mm:ss.SSS");
|
24 |
+
}
|
25 |
+
construct() {
|
26 |
+
this.html = this.get_messagers_container_html();
|
27 |
+
this.index = this.create_index();
|
28 |
+
this.title = this.create_title();
|
29 |
+
this.saved_datetime = this.get_current_datetime_string();
|
30 |
+
this.message_count = $("#messagers-container").children().length;
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
class ChatHistoryStorer {
|
35 |
constructor() {
|
36 |
this.init_database();
|
|
|
50 |
this.render_chat_history_sidebar_items();
|
51 |
console.log("chat_history cleared.");
|
52 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
render_chat_history_sidebar_items() {
|
54 |
let chat_history_sidebar_items = $("#chat-history-sidebar-items");
|
55 |
let chat_history = this.db.chat_history;
|
|
|
66 |
});
|
67 |
}
|
68 |
save_current_chat_session() {
|
69 |
+
let chat_storage_item = new ChatStorageItem(this);
|
70 |
+
chat_storage_item.construct();
|
71 |
+
if (chat_storage_item.html === null) {
|
72 |
console.log("Empty messagers_container, no chat session to save.");
|
73 |
return;
|
74 |
} else {
|
|
|
|
|
|
|
75 |
this.db.chat_history.put({
|
76 |
+
index: chat_storage_item.index,
|
77 |
+
title: chat_storage_item.title,
|
78 |
+
html: chat_storage_item.html,
|
79 |
+
saved_datetime: chat_storage_item.saved_datetime,
|
80 |
});
|
81 |
this.render_chat_history_sidebar_items();
|
|
|
|
|
|
|
82 |
console.log(
|
83 |
+
`${chat_storage_item.message_count} messages saved at ${chat_storage_item.saved_datetime}.`
|
84 |
);
|
85 |
}
|
86 |
}
|