Skip to content

Commit 3fd54d5

Browse files
committed
Merge pull request #48 from Bitstackers/issue-47
Merge new message model
2 parents 4d39b3c + 26133fd commit 3fd54d5

File tree

13 files changed

+69
-615
lines changed

13 files changed

+69
-615
lines changed

bin/messagedispatcher.dart

Lines changed: 36 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -51,20 +51,15 @@ void main(List<String> args) {
5151
log.shout(error, stackTrace);
5252
}
5353
}
54+
//
55+
///**
56+
// *
57+
// */
58+
//List<Model.MessageEndpoint> emailEndpoints(List<Model.MessageEndpoint> endpoints) =>
59+
// endpoints.where((Model.MessageEndpoint endpoint) =>
60+
// endpoint.type == Model.MessageEndpointType.EMAIL).toList();
61+
//
5462

55-
/**
56-
*
57-
*/
58-
List<Model.MessageEndpoint> emailEndpoints(List<Model.MessageEndpoint> endpoints) =>
59-
endpoints.where((Model.MessageEndpoint endpoint) =>
60-
endpoint.type == Model.MessageEndpointType.EMAIL).toList();
61-
62-
/**
63-
*
64-
*/
65-
List<Model.MessageRecipient> emailRecipients(Model.Message message) =>
66-
message.recipients.where((Model.MessageRecipient recipient) =>
67-
recipient.endpoints.contains(Model.MessageEndpointType.EMAIL)).toList();
6863

6964
/**
7065
* The Periodic task that passes emails on to the SMTP server.
@@ -76,7 +71,7 @@ void periodicEmailSend() {
7671
Router.messageQueueStore.list(maxTries : msgdisp.config.maxTries).then((List<Model.MessageQueueItem> queuedMessages) {
7772
Future.forEach(queuedMessages, tryDispatch).whenComplete(() {
7873
log.info('Processed ${queuedMessages.length} messages in ${(new DateTime.now().difference(start)).inMilliseconds} milliseconds. Sleeping for ${msgdisp.config.mailerPeriod} seconds');
79-
reSchedule();
74+
//reSchedule();
8075
});
8176
}).catchError((error, stackTrace) {
8277
/// TODO (KRC, TL): We need to figure out what to do here. As it stands we
@@ -112,31 +107,35 @@ Timer reSchedule() =>
112107
*
113108
*/
114109
bool showHelp() => parsedArgs['help'];
115-
116-
/**
117-
*
118-
*/
119-
List<Model.MessageRecipient> smsRecipients(Model.Message message) =>
120-
message.recipients.where((Model.MessageRecipient recipient) =>
121-
recipient.endpoints.contains(Model.MessageEndpointType.SMS)).toList();
110+
//
111+
///**
112+
// *
113+
// */
114+
//List<Model.DistributionListEntry> smsRecipients(Model.Message message) =>
115+
// message.recipients.where((Model.DistributionListEntry recipient) =>
116+
// recipient.endpoints.contains(Model.MessageEndpointType.SMS)).toList();
122117

123118
/**
124119
*
125120
*/
126121
Future tryDispatch(Model.MessageQueueItem queueItem) {
127-
return queueItem.message(Router.messageStore).then((Model.Message message) {
128-
129-
if (!message.recipients.hasRecipients) {
130-
log.severe ("No recipients detected on message with ID ${message.ID}!");
131-
queueItem.tries++;
132-
queueItem.save(Router.messageQueueStore);
133-
134-
} else {
122+
return new Future(() {
123+
log.severe('MessageDispatcher is currently disable due to heavy refactoring');
124+
});
135125

136-
return new Future(() {
137-
log.fine('Dispatching messageID ${message.ID} - queueID: ${queueItem.ID}');
138-
Model.Template email = new Model.TemplateEmail(message, emailEndpoints(queueItem.unhandledEndpoints));
139-
log.fine(email.toString());
126+
// return queueItem.message(Router.messageStore).then((Model.Message message) {
127+
//
128+
// if (!message.recipients.hasRecipients) {
129+
// log.severe ("No recipients detected on message with ID ${message.ID}!");
130+
// queueItem.tries++;
131+
// queueItem.create(Router.messageQueueStore);
132+
//
133+
// } else {
134+
//
135+
// return new Future(() {
136+
// log.fine('Dispatching messageID ${message.ID} - queueID: ${queueItem.ID}');
137+
// Model.Template email = new Model.TemplateEmail(message, emailEndpoints(queueItem.unhandledRecipients));
138+
// log.fine(email.toString());
140139

141140
// process.exitCode.then((int exitCode) {
142141
// if (exitCode != 0) {
@@ -162,8 +161,8 @@ Future tryDispatch(Model.MessageQueueItem queueItem) {
162161
// queueItem.save(Router.messageQueueStore);
163162
// }
164163
// });
165-
166-
});
167-
}
168-
});
164+
//
165+
// });
166+
// }
167+
// });
169168
}

db_src/schema.sql

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ INSERT INTO recipient_visibilities VALUES ('to'), ('cc'), ('bcc');
127127
CREATE TABLE messages (
128128
id INTEGER NOT NULL PRIMARY KEY, -- AUTOINCREMENT
129129
message TEXT NOT NULL,
130-
context_contact_id INTEGER NULL REFERENCES contacts (id),
130+
recipients JSON NOT NULL DEFAULT '[]',
131+
context_contact_id INTEGER NOT NULL REFERENCES contacts (id),
131132
context_reception_id INTEGER NOT NULL REFERENCES receptions (id),
132133
context_contact_name TEXT NULL DEFAULT NULL, -- Dereferenced contact name.
133134
context_reception_name TEXT NOT NULL, -- Dereferenced reception name.
@@ -141,17 +142,6 @@ CREATE TABLE messages (
141142
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
142143
);
143144

144-
CREATE TABLE message_recipients (
145-
contact_id INTEGER NOT NULL,
146-
reception_id INTEGER NOT NULL,
147-
message_id INTEGER NOT NULL,
148-
recipient_role TEXT NOT NULL,
149-
contact_name TEXT NOT NULL, -- Dereferenced contact name.
150-
reception_name TEXT NOT NULL, -- Dereferenced reception name.
151-
152-
PRIMARY KEY (contact_id, reception_id, message_id)
153-
);
154-
155145
-- The message_queue is a simple job-stack that, when a item is present in the
156146
-- table, indicates that is has not been delived to a transport agent.
157147
-- 'unhandled_endpoints' stores a list of recipient endpoints, still waiting
@@ -450,7 +440,6 @@ ALTER TABLE messaging_address_types OWNER TO openreception;
450440
ALTER TABLE messaging_end_points OWNER TO openreception;
451441
ALTER TABLE recipient_visibilities OWNER TO openreception;
452442
ALTER TABLE messages OWNER TO openreception;
453-
ALTER TABLE message_recipients OWNER TO openreception;
454443
ALTER TABLE message_queue OWNER TO openreception;
455444
ALTER TABLE message_queue_history OWNER TO openreception;
456445
ALTER TABLE calendar_events OWNER TO openreception;

db_src/test_data_dk.sql

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1177,10 +1177,6 @@ VALUES ('kim.rostgaard@gmail.com', 2),
11771177
INSERT INTO messages (id, message, context_contact_id, context_reception_id, context_contact_name, context_reception_name, taken_from_name, taken_from_company, taken_from_phone, taken_from_cellphone, taken_by_agent, flags, created_at)
11781178
VALUES (1, 'Det drejer sig om kosten i gangen - du ved hvad der skal gøres.',4, 1, 'Kim Rostgaard', 'BitStackers', 'Jens Olsen', 'Blik A/S', '22114411', '33551122', 2, '["urgent"]', NOW());
11791179

1180-
INSERT INTO message_recipients (contact_id, reception_id, message_id, recipient_role, contact_name, reception_name)
1181-
VALUES (4, 1, 1, 'to', 'Kim Rostgaard Chrisensen', 'BitStackers'),
1182-
(4, 2, 1, 'cc', 'Kim Rostgaard Chrisensen', 'Gir');
1183-
11841180
INSERT INTO message_queue (id, message_id, enqueued_at, last_try, tries)
11851181
VALUES (1000000, 1, NOW(), NULL, 0);
11861182

db_src/test_data_en.sql

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1177,10 +1177,6 @@ VALUES ('kim.rostgaard@gmail.com', 2),
11771177
INSERT INTO messages (id, message, context_contact_id, context_reception_id, context_contact_name, context_reception_name, taken_from_name, taken_from_company, taken_from_phone, taken_from_cellphone, taken_by_agent, flags, created_at)
11781178
VALUES (1, 'About Car rental; are there convertibles in stock?',4, 1, 'Kim Rostgaard', 'BitStackers', 'John Johnson', 'AnyCorp', '22114411', '33551122', 2, '["urgent"]', NOW());
11791179

1180-
INSERT INTO message_recipients (contact_id, reception_id, message_id, recipient_role, contact_name, reception_name)
1181-
VALUES (4, 1, 1, 'to', 'Kim Rostgaard Chrisensen', 'BitStackers'),
1182-
(4, 2, 1, 'cc', 'Kim Rostgaard Chrisensen', 'Gir');
1183-
11841180
INSERT INTO message_queue (id, message_id, enqueued_at, last_try, tries)
11851181
VALUES (1000000, 1, NOW(), NULL, 0);
11861182

lib/contact_server/database.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import 'package:openreception_framework/storage.dart' as Storage;
1010
import 'package:openreception_framework/util.dart' as Util;
1111
import 'configuration.dart';
1212

13-
part 'db/contact.dart';
1413
part 'db/contact-calendar.dart';
1514

1615
const String libraryName = 'contactserver.database';

0 commit comments

Comments
 (0)