From b152dd042f099f3da81fb479c782c0351332db90 Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Fri, 19 Feb 2021 11:38:23 -0800 Subject: [PATCH] Added sender to messages sent IO-590 --- bodyshop_translations.babel | 21 ++++++++++ .../chat-message-list.component.jsx | 16 +++++++- client/src/graphql/conversations.queries.js | 2 + client/src/translations/en_us/common.json | 1 + client/src/translations/es/common.json | 1 + client/src/translations/fr/common.json | 1 + .../down.yaml | 5 +++ .../up.yaml | 5 +++ .../down.yaml | 5 +++ .../up.yaml | 5 +++ .../down.yaml | 5 +++ .../up.yaml | 5 +++ .../down.yaml | 5 +++ .../up.yaml | 10 +++++ .../down.yaml | 36 ++++++++++++++++++ .../up.yaml | 37 ++++++++++++++++++ .../down.yaml | 37 ++++++++++++++++++ .../up.yaml | 38 +++++++++++++++++++ hasura/migrations/metadata.yaml | 24 ++++++------ server/sms/send.js | 1 + 20 files changed, 248 insertions(+), 12 deletions(-) create mode 100644 hasura/migrations/1613762281912_alter_table_public_messages_add_column_user/down.yaml create mode 100644 hasura/migrations/1613762281912_alter_table_public_messages_add_column_user/up.yaml create mode 100644 hasura/migrations/1613762305531_alter_table_public_messages_alter_column_user/down.yaml create mode 100644 hasura/migrations/1613762305531_alter_table_public_messages_alter_column_user/up.yaml create mode 100644 hasura/migrations/1613762357382_alter_table_public_messages_alter_column_userid/down.yaml create mode 100644 hasura/migrations/1613762357382_alter_table_public_messages_alter_column_userid/up.yaml create mode 100644 hasura/migrations/1613762365032_set_fk_public_messages_userid/down.yaml create mode 100644 hasura/migrations/1613762365032_set_fk_public_messages_userid/up.yaml create mode 100644 hasura/migrations/1613762380479_update_permission_user_public_table_messages/down.yaml create mode 100644 hasura/migrations/1613762380479_update_permission_user_public_table_messages/up.yaml create mode 100644 hasura/migrations/1613762388836_update_permission_user_public_table_messages/down.yaml create mode 100644 hasura/migrations/1613762388836_update_permission_user_public_table_messages/up.yaml diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel index 7610f766d..ed5de8f3c 100644 --- a/bodyshop_translations.babel +++ b/bodyshop_translations.babel @@ -21936,6 +21936,27 @@ + + sentby + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + typeamessage false diff --git a/client/src/components/chat-messages-list/chat-message-list.component.jsx b/client/src/components/chat-messages-list/chat-message-list.component.jsx index c46daaf4e..c4a55b157 100644 --- a/client/src/components/chat-messages-list/chat-message-list.component.jsx +++ b/client/src/components/chat-messages-list/chat-message-list.component.jsx @@ -8,6 +8,8 @@ import { List, } from "react-virtualized"; import "./chat-message-list.styles.scss"; +import i18n from "i18next"; +import moment from "moment"; export default function ChatMessageListComponent({ messages }) { const virtualizedListRef = useRef(null); @@ -79,7 +81,19 @@ const MessageRender = (message) => { ); } else { - return {message.text}; + return ( +
+
{message.text}
+ {message.isoutbound && ( +
+ {i18n.t("messaging.labels.sentby", { + by: message.userid, + time: moment(message.created_at).format("MM/DD/YYYY @ hh:mm a"), + })} +
+ )} +
+ ); } }; diff --git a/client/src/graphql/conversations.queries.js b/client/src/graphql/conversations.queries.js index 0b4f41ef4..5509778da 100644 --- a/client/src/graphql/conversations.queries.js +++ b/client/src/graphql/conversations.queries.js @@ -39,6 +39,8 @@ export const CONVERSATION_SUBSCRIPTION_BY_PK = gql` isoutbound image image_path + userid + created_at } messages_aggregate( where: { read: { _eq: false }, isoutbound: { _eq: false } } diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index f4d653ec3..119f0f28e 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -1315,6 +1315,7 @@ "nojobs": "Not associated to any job.", "phonenumber": "Phone #", "presets": "Presets", + "sentby": "Sent by {{by}} at {{time}}", "typeamessage": "Send a message..." } }, diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index 9bbc5e8d0..b3cf88469 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -1315,6 +1315,7 @@ "nojobs": "", "phonenumber": "", "presets": "", + "sentby": "", "typeamessage": "Enviar un mensaje..." } }, diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index b2e4f1c01..1e0823a82 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -1315,6 +1315,7 @@ "nojobs": "", "phonenumber": "", "presets": "", + "sentby": "", "typeamessage": "Envoyer un message..." } }, diff --git a/hasura/migrations/1613762281912_alter_table_public_messages_add_column_user/down.yaml b/hasura/migrations/1613762281912_alter_table_public_messages_add_column_user/down.yaml new file mode 100644 index 000000000..dc79d867f --- /dev/null +++ b/hasura/migrations/1613762281912_alter_table_public_messages_add_column_user/down.yaml @@ -0,0 +1,5 @@ +- args: + cascade: false + read_only: false + sql: ALTER TABLE "public"."messages" DROP COLUMN "user"; + type: run_sql diff --git a/hasura/migrations/1613762281912_alter_table_public_messages_add_column_user/up.yaml b/hasura/migrations/1613762281912_alter_table_public_messages_add_column_user/up.yaml new file mode 100644 index 000000000..8239c0524 --- /dev/null +++ b/hasura/migrations/1613762281912_alter_table_public_messages_add_column_user/up.yaml @@ -0,0 +1,5 @@ +- args: + cascade: false + read_only: false + sql: ALTER TABLE "public"."messages" ADD COLUMN "user" uuid NULL; + type: run_sql diff --git a/hasura/migrations/1613762305531_alter_table_public_messages_alter_column_user/down.yaml b/hasura/migrations/1613762305531_alter_table_public_messages_alter_column_user/down.yaml new file mode 100644 index 000000000..0e628401b --- /dev/null +++ b/hasura/migrations/1613762305531_alter_table_public_messages_alter_column_user/down.yaml @@ -0,0 +1,5 @@ +- args: + cascade: false + read_only: false + sql: alter table "public"."messages" rename column "userid" to "user"; + type: run_sql diff --git a/hasura/migrations/1613762305531_alter_table_public_messages_alter_column_user/up.yaml b/hasura/migrations/1613762305531_alter_table_public_messages_alter_column_user/up.yaml new file mode 100644 index 000000000..a3989707e --- /dev/null +++ b/hasura/migrations/1613762305531_alter_table_public_messages_alter_column_user/up.yaml @@ -0,0 +1,5 @@ +- args: + cascade: false + read_only: false + sql: alter table "public"."messages" rename column "user" to "userid"; + type: run_sql diff --git a/hasura/migrations/1613762357382_alter_table_public_messages_alter_column_userid/down.yaml b/hasura/migrations/1613762357382_alter_table_public_messages_alter_column_userid/down.yaml new file mode 100644 index 000000000..6b5c1117b --- /dev/null +++ b/hasura/migrations/1613762357382_alter_table_public_messages_alter_column_userid/down.yaml @@ -0,0 +1,5 @@ +- args: + cascade: false + read_only: false + sql: ALTER TABLE "public"."messages" ALTER COLUMN "userid" TYPE uuid; + type: run_sql diff --git a/hasura/migrations/1613762357382_alter_table_public_messages_alter_column_userid/up.yaml b/hasura/migrations/1613762357382_alter_table_public_messages_alter_column_userid/up.yaml new file mode 100644 index 000000000..c9aaedc3a --- /dev/null +++ b/hasura/migrations/1613762357382_alter_table_public_messages_alter_column_userid/up.yaml @@ -0,0 +1,5 @@ +- args: + cascade: false + read_only: false + sql: ALTER TABLE "public"."messages" ALTER COLUMN "userid" TYPE text; + type: run_sql diff --git a/hasura/migrations/1613762365032_set_fk_public_messages_userid/down.yaml b/hasura/migrations/1613762365032_set_fk_public_messages_userid/down.yaml new file mode 100644 index 000000000..95736bac0 --- /dev/null +++ b/hasura/migrations/1613762365032_set_fk_public_messages_userid/down.yaml @@ -0,0 +1,5 @@ +- args: + cascade: false + read_only: false + sql: alter table "public"."messages" drop constraint "messages_userid_fkey"; + type: run_sql diff --git a/hasura/migrations/1613762365032_set_fk_public_messages_userid/up.yaml b/hasura/migrations/1613762365032_set_fk_public_messages_userid/up.yaml new file mode 100644 index 000000000..e1310ad73 --- /dev/null +++ b/hasura/migrations/1613762365032_set_fk_public_messages_userid/up.yaml @@ -0,0 +1,10 @@ +- args: + cascade: false + read_only: false + sql: |- + alter table "public"."messages" + add constraint "messages_userid_fkey" + foreign key ("userid") + references "public"."users" + ("email") on update set null on delete set null; + type: run_sql diff --git a/hasura/migrations/1613762380479_update_permission_user_public_table_messages/down.yaml b/hasura/migrations/1613762380479_update_permission_user_public_table_messages/down.yaml new file mode 100644 index 000000000..d6c6a706f --- /dev/null +++ b/hasura/migrations/1613762380479_update_permission_user_public_table_messages/down.yaml @@ -0,0 +1,36 @@ +- args: + role: user + table: + name: messages + schema: public + type: drop_insert_permission +- args: + permission: + check: + conversation: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + columns: + - id + - created_at + - updated_at + - msid + - conversationid + - text + - image + - image_path + - isoutbound + - status + - read + set: {} + role: user + table: + name: messages + schema: public + type: create_insert_permission diff --git a/hasura/migrations/1613762380479_update_permission_user_public_table_messages/up.yaml b/hasura/migrations/1613762380479_update_permission_user_public_table_messages/up.yaml new file mode 100644 index 000000000..81a526283 --- /dev/null +++ b/hasura/migrations/1613762380479_update_permission_user_public_table_messages/up.yaml @@ -0,0 +1,37 @@ +- args: + role: user + table: + name: messages + schema: public + type: drop_insert_permission +- args: + permission: + check: + conversation: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + columns: + - conversationid + - created_at + - id + - image + - image_path + - isoutbound + - msid + - read + - status + - text + - updated_at + - userid + set: {} + role: user + table: + name: messages + schema: public + type: create_insert_permission diff --git a/hasura/migrations/1613762388836_update_permission_user_public_table_messages/down.yaml b/hasura/migrations/1613762388836_update_permission_user_public_table_messages/down.yaml new file mode 100644 index 000000000..779d52c21 --- /dev/null +++ b/hasura/migrations/1613762388836_update_permission_user_public_table_messages/down.yaml @@ -0,0 +1,37 @@ +- args: + role: user + table: + name: messages + schema: public + type: drop_select_permission +- args: + permission: + allow_aggregations: true + columns: + - image + - isoutbound + - read + - image_path + - msid + - status + - text + - created_at + - updated_at + - conversationid + - id + computed_fields: [] + filter: + conversation: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + role: user + table: + name: messages + schema: public + type: create_select_permission diff --git a/hasura/migrations/1613762388836_update_permission_user_public_table_messages/up.yaml b/hasura/migrations/1613762388836_update_permission_user_public_table_messages/up.yaml new file mode 100644 index 000000000..e0238e6f8 --- /dev/null +++ b/hasura/migrations/1613762388836_update_permission_user_public_table_messages/up.yaml @@ -0,0 +1,38 @@ +- args: + role: user + table: + name: messages + schema: public + type: drop_select_permission +- args: + permission: + allow_aggregations: true + columns: + - conversationid + - created_at + - id + - image + - image_path + - isoutbound + - msid + - read + - status + - text + - updated_at + - userid + computed_fields: [] + filter: + conversation: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + role: user + table: + name: messages + schema: public + type: create_select_permission diff --git a/hasura/migrations/metadata.yaml b/hasura/migrations/metadata.yaml index 765d7fc36..097650649 100644 --- a/hasura/migrations/metadata.yaml +++ b/hasura/migrations/metadata.yaml @@ -3014,32 +3014,34 @@ tables: - active: _eq: true columns: - - id - - created_at - - updated_at - - msid - conversationid - - text + - created_at + - id - image - image_path - isoutbound - - status + - msid - read + - status + - text + - updated_at + - userid select_permissions: - role: user permission: columns: + - conversationid + - created_at + - id - image - - isoutbound - - read - image_path + - isoutbound - msid + - read - status - text - - created_at - updated_at - - conversationid - - id + - userid filter: conversation: bodyshop: diff --git a/server/sms/send.js b/server/sms/send.js index 3db67b236..52b638374 100644 --- a/server/sms/send.js +++ b/server/sms/send.js @@ -32,6 +32,7 @@ exports.send = (req, res) => { text: body, conversationid, isoutbound: true, + userid: req.user.email, }; gqlClient .request(queries.INSERT_MESSAGE, { msg: newMessage })