Hansimov commited on
Commit
dd11db6
1 Parent(s): 4baa2bc

:recycle: [Refactor] Separate ChatStorageItem from ChatHistoryStorer

Browse files
Files changed (1) hide show
  1. 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 chat_container_html = this.get_chat_container_html();
58
- if (chat_container_html === null) {
 
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: chat_index,
67
- title: chat_title,
68
- html: chat_container_html,
69
- saved_datetime: chat_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
- `${messages_count} messages saved at ${chat_saved_datetime}.`
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
  }