+
{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 })