diff --git a/applications/teletype/priv/templates/port_cancel.html b/applications/teletype/priv/templates/port_cancel.html index 05fa923d751..3f7906d0b13 100644 --- a/applications/teletype/priv/templates/port_cancel.html +++ b/applications/teletype/priv/templates/port_cancel.html @@ -35,7 +35,7 @@
Your port request {{port_request.name}} of account {{account.name}} has been canceled.
+Your port request {{port_request.name}} in account {{account.name}} has been canceled.
@@ -43,10 +43,10 @@
- {{port_request.transition_reason.user.first_name}} {{port_request.transition_reason.user.last_name}} commented on {{port_request.transition_reason.date.local|date:"l, F j, Y \\a\\t H:i"}}: +{{port_request.transition_reason.user.author}} commented on {{port_request.transition_reason.date.local|date:"F j, Y \\a\\t h:i A"}}: {{port_request.transition_reason.content}} |
|
- Port Request Numbers+ |
+ Port Request Information+
+ - Name: {{port_request.name}} |
-
|
-
Account Informationdiff --git a/applications/teletype/priv/templates/port_cancel.text b/applications/teletype/priv/templates/port_cancel.text index 4ffffb9f4d7..840104e6b87 100644 --- a/applications/teletype/priv/templates/port_cancel.text +++ b/applications/teletype/priv/templates/port_cancel.text @@ -1,17 +1,20 @@ Port Request Canceled -Your port request "{{port_request.name}}" of account '{{account.name}}' has been canceled. -{% if port_request.transition_reason.content %} +Your port request {{port_request.name}} in account {{account.name}} has been canceled.{% if port_request.transition_reason.content %} -{{port_request.transition_reason.user.first_name}} {{port_request.transition_reason.user.last_name}} commented on {{port_request.transition_reason.date.local|date:"l, F j, Y \\a\\t H:i"}}: -{{port_request.transition_reason.content}} +{{port_request.transition_reason.user.author}} commented on {{port_request.transition_reason.date.local|date:"F j, Y \\a\\t h:i A"}}: + > {{port_request.transition_reason.content}} {% endif %} -=== Port Request Numbers === -{% for number in port_request.numbers %} -- {{number}} -{% endfor %} + +Port Request Information + Name: {{port_request.name}} + State: {{port_request.port_state}} + ID: {{port_request.id}}{% if port_request.port_scheduled_date %} + Scheduled Date: {{port_request.port_scheduled_date.local|date:"l, F j, Y h:i A"}} ({{port_request.port_scheduled_date.timezone}}){% elif port_request.requested_port_date %} + Requested Transfer Date: {{port_request.requested_port_date.local|date:"l, F j, Y h:i A"}} ({{port_request.requested_port_date.timezone}}){% endif %} + Numbers: {{ port_request.numbers|join:", "|stringformat:"s"|wordwrap:40 }} diff --git a/applications/teletype/priv/templates/port_comment.html b/applications/teletype/priv/templates/port_comment.html index ab2c144e0b0..cc42e4772fd 100644 --- a/applications/teletype/priv/templates/port_comment.html +++ b/applications/teletype/priv/templates/port_comment.html @@ -18,7 +18,7 @@ |
+ |
+ Port Request Information+
+ - Name: {{port_request.name}}
+ |
+ Account Information+
+ - Account ID: {{account.id}} |
Your request {{port_request.name}} to port numbers into account {{account.name}} is transitioned into pending state.
+Your number port request {{port_request.name}} for account {{account.name}} transitioned into pending state.
{{port_request.transition_reason.user.first_name}} {{port_request.transition_reason.user.last_name}} commented on {{port_request.transition_reason.date.local|date:"l, F j, Y \\a\\t H:i"}}:
+{{port_request.transition_reason.user.author}} commented on {{port_request.transition_reason.date.local|date:"F j, Y \\a\\t h:i A"}}:
{{port_request.transition_reason.content}}
+ - Name: {{port_request.name}}
+ - State: {{port_request.port_state}}
+ - ID: {{port_request.id}}
{% if port_request.port_scheduled_date %}
+ - Scheduled Transfer Date: {{port_request.port_scheduled_date.local|date:"l, F j, Y h:i A"}} ({{port_request.port_scheduled_date.timezone}})
{% elif port_request.requested_port_date %}
+ - Requested Transfer Date: {{port_request.requested_port_date.local|date:"l, F j, Y h:i A"}} ({{port_request.requested_port_date.timezone}})
{% endif %}
+ - Numbers:
{{ port_request.numbers|join:", " }}
+
Account Informationdiff --git a/applications/teletype/priv/templates/port_pending.text b/applications/teletype/priv/templates/port_pending.text index 7654ae57e6d..bef5e78180f 100644 --- a/applications/teletype/priv/templates/port_pending.text +++ b/applications/teletype/priv/templates/port_pending.text @@ -1,18 +1,21 @@ Port Request Pending -Your request "{{port_request.name}}" to port numbers into -account '{{account.name}}' is transitioned into pending state. -{% if port_request.transition_reason.content %} +Your number port request {{port_request.name}} for account {{account.name}} +transitioned into pending state.{% if port_request.transition_reason.content %} -{{port_request.transition_reason.user.first_name}} {{port_request.transition_reason.user.last_name}} commented on {{port_request.transition_reason.date.local|date:"l, F j, Y \\a\\t H:i"}}: -{{port_request.transition_reason.content}} +{{port_request.transition_reason.user.author}} commented on {{port_request.transition_reason.date.local|date:"F j, Y \\a\\t h:i A"}}: + > {{port_request.transition_reason.content}} {% endif %} -=== Port Request Numbers === -{% for number in port_request.numbers %} -- {{number}} -{% endfor %} + +Port Request Information + Name: {{port_request.name}} + State: {{port_request.port_state}} + ID: {{port_request.id}}{% if port_request.port_scheduled_date %} + Scheduled Date: {{port_request.port_scheduled_date.local|date:"l, F j, Y h:i A"}} ({{port_request.port_scheduled_date.timezone}}){% elif port_request.requested_port_date %} + Requested Transfer Date: {{port_request.requested_port_date.local|date:"l, F j, Y h:i A"}} ({{port_request.requested_port_date.timezone}}){% endif %} + Numbers: {{ port_request.numbers|join:", "|stringformat:"s"|wordwrap:40 }} diff --git a/applications/teletype/priv/templates/port_rejected.html b/applications/teletype/priv/templates/port_rejected.html index 33479dfdf2e..bf407dbffb2 100644 --- a/applications/teletype/priv/templates/port_rejected.html +++ b/applications/teletype/priv/templates/port_rejected.html @@ -49,7 +49,7 @@
- |
{{port_request.transition_reason.user.first_name}} {{port_request.transition_reason.user.last_name}} commented on {{port_request.transition_reason.date.local|date:"l, F j, Y \\a\\t H:i"}}: +{{port_request.transition_reason.user.author}} commented on {{port_request.transition_reason.date.local|date:"F j, Y \\a\\t h:i A"}}: {{port_request.transition_reason.content}} |
+ - Name: {{port_request.name}}
+ - State: {{port_request.port_state}}
+ - ID: {{port_request.id}}
{% if port_request.port_scheduled_date %}
+ - Scheduled Transfer Date: {{port_request.port_scheduled_date.local|date:"l, F j, Y h:i A"}} ({{port_request.port_scheduled_date.timezone}})
{% elif port_request.requested_port_date %}
+ - Requested Transfer Date: {{port_request.requested_port_date.local|date:"l, F j, Y h:i A"}} ({{port_request.requested_port_date.timezone}})
{% endif %}
+ - Numbers:
{{ port_request.numbers|join:", " }}
+
Account Informationdiff --git a/applications/teletype/priv/templates/port_rejected.text b/applications/teletype/priv/templates/port_rejected.text index aa07689da31..48272c08e39 100644 --- a/applications/teletype/priv/templates/port_rejected.text +++ b/applications/teletype/priv/templates/port_rejected.text @@ -1,17 +1,20 @@ Port Request Rejected -Port request "{{port_request.name}}" of account '{{account.name}}' has been rejected. -{% if port_request.transition_reason.content %} +Port request "{{port_request.name}}" of account '{{account.name}}' has been rejected.{% if port_request.transition_reason.content %} -{{port_request.transition_reason.user.first_name}} {{port_request.transition_reason.user.last_name}} commented on {{port_request.transition_reason.date.local|date:"l, F j, Y \\a\\t H:i"}}: -{{port_request.transition_reason.content}} +{{port_request.transition_reason.user.author}} commented on {{port_request.transition_reason.date.local|date:"F j, Y \\a\\t h:i A"}}: + > {{port_request.transition_reason.content}} {% endif %} -=== Port Request Numbers === -{% for number in port_request.numbers %} -- {{number}} -{% endfor %} + +Port Request Information + Name: {{port_request.name}} + State: {{port_request.port_state}} + ID: {{port_request.id}}{% if port_request.port_scheduled_date %} + Scheduled Date: {{port_request.port_scheduled_date.local|date:"l, F j, Y h:i A"}} ({{port_request.port_scheduled_date.timezone}}){% elif port_request.requested_port_date %} + Requested Transfer Date: {{port_request.requested_port_date.local|date:"l, F j, Y h:i A"}} ({{port_request.requested_port_date.timezone}}){% endif %} + Numbers: {{ port_request.numbers|join:", "|stringformat:"s"|wordwrap:40 }} diff --git a/applications/teletype/priv/templates/port_request.html b/applications/teletype/priv/templates/port_request.html index 7ca22400a02..d0a40548f5d 100644 --- a/applications/teletype/priv/templates/port_request.html +++ b/applications/teletype/priv/templates/port_request.html @@ -41,23 +41,40 @@ Request {{port_request.name}} to port numbers into account {{account.name}} has been submitted. |
- Port Request Numbers- |
- ||
-
|
+
|
+ Port Request Information+
+ - Name: {{port_request.name}} |
+ |||
Account Informationdiff --git a/applications/teletype/priv/templates/port_request.text b/applications/teletype/priv/templates/port_request.text index f1491c4246b..78277bcc3f8 100644 --- a/applications/teletype/priv/templates/port_request.text +++ b/applications/teletype/priv/templates/port_request.text @@ -1,13 +1,19 @@ Port Request Submitted -Request "{{port_request.name}}" to port numbers into account '{{account.name}}' has been submitted. +Request "{{port_request.name}}" to port numbers into account '{{account.name}}' has been submitted.{% if port_request.transition_reason.content %} +{{port_request.transition_reason.user.author}} commented on {{port_request.transition_reason.date.local|date:"F j, Y \\a\\t h:i A"}}: + > {{port_request.transition_reason.content}} +{% endif %} -=== Port Request Numbers === -{% for number in port_request.numbers %} -- {{number}} -{% endfor %} + +Port Request Information + Name: {{port_request.name}} + State: {{port_request.port_state}} + ID: {{port_request.id}}{% if port_request.requested_port_date %} + Requested Transfer Date: {{port_request.requested_port_date.local|date:"l, F j, Y h:i A"}} ({{port_request.requested_port_date.timezone}}){% endif %} + Numbers: {{ port_request.numbers|join:", "|stringformat:"s"|wordwrap:40 }} diff --git a/applications/teletype/priv/templates/port_request_admin.html b/applications/teletype/priv/templates/port_request_admin.html index 9f308834dcb..6a9e7962b19 100644 --- a/applications/teletype/priv/templates/port_request_admin.html +++ b/applications/teletype/priv/templates/port_request_admin.html @@ -37,18 +37,13 @@ -Request {{port_request.name}} to port numbers into account {{account.name}} has been submitted. - |
- |||
- Port Request Numbers+ |
+ Submitted On: {{port_request.created.local|date:"l, F j, Y h:i A"}} ({{port_request.created.timezone}}) |
||
-
|
+ Request {{port_request.name}} to port numbers into account {{account.name}} has been submitted. |
||
{{port_request.port_state}} | |||
Numbers | +{{port_request.numbers|join:", "}} | +||
Requested Port Date | -{{port_request.requested_port_date.local|date:"l, F j, Y H:i"}} | +{% if port_request.requested_port_date %}{{port_request.requested_port_date.local|date:"l, F j, Y h:i A"}} ({{port_request.requested_port_date.timezone}}){% else %}Not scheduled{% endif %} | +|
Losing Carrier | +{{port_request.losing_carrier}} | +||
Winning Carrier | +{{port_request.winning_carrier}} | ||
Service Provider | -{{port_request.service_provider}} | +Carrier Reference Number | +{{port_request.carrier_reference_number}} |
Customer Contact | -{{port_request.customer_contact}} | +{{ port_request.customer_contact|join:", "}} | |
Billing Name | {{port_request.bill_name}} | ||
Billing Address | -{% firstof port_request.bill_address port_request.street_address %} | +Billing Street Number | +{{port_request.bill_street_number}} | +
Billing Street | +{{port_request.bill_street_address}} | +||
Billing Street Type | +{{port_request.bill_street_type}} | ||
Billing City | @@ -100,7 +115,7 @@|||
Billing Zip Code | +Billing Postal Code | {{port_request.bill_postal_code}} |
Your number port request {{port_request.name}} of account {{account.name}} has been scheduled to happen on {{port_request.port_scheduled_date.local|date:"l, F j, Y H:i"}}
+Your number port request {{port_request.name}} of account {{account.name}} has been scheduled to port on {{port_request.port_scheduled_date.local|date:"l, F j, Y h:i A"}} ({{port_request.port_scheduled_date.timezone}})
{{port_request.transition_reason.user.first_name}} {{port_request.transition_reason.user.last_name}} commented on {{port_request.transition_reason.date.local|date:"l, F j, Y \\a\\t H:i"}}:
+{{port_request.transition_reason.user.author}} commented on {{port_request.transition_reason.date.local|date:"F j, Y \\a\\t h:i A"}}:
{{port_request.transition_reason.content}}
+ - Name: {{port_request.name}}
+ - State: {{port_request.port_state}}
+ - ID: {{port_request.id}}
+ - Scheduled Transfer Date: {{port_request.port_scheduled_date.local|date:"l, F j, Y h:i A"}} ({{port_request.port_scheduled_date.timezone}})
+ - Numbers:
{{ port_request.numbers|join:", " }}
+
Account Informationdiff --git a/applications/teletype/priv/templates/port_scheduled.text b/applications/teletype/priv/templates/port_scheduled.text index 5069978bf76..6bce50929b9 100644 --- a/applications/teletype/priv/templates/port_scheduled.text +++ b/applications/teletype/priv/templates/port_scheduled.text @@ -1,18 +1,20 @@ Port Request Scheduled Your number port request "{{port_request.name}}" of account '{{account.name}}' has been scheduled -to happen on {{port_request.port_scheduled_date.local|date:"l, F j, Y H:i"}} -{% if port_request.transition_reason.content %} +to port on {{port_request.port_scheduled_date.local|date:"l, F j, Y h:i A"}} ({{port_request.port_scheduled_date.timezone}}).{% if port_request.transition_reason.content %} -{{port_request.transition_reason.user.first_name}} {{port_request.transition_reason.user.last_name}} commented on {{port_request.transition_reason.date.local|date:"l, F j, Y \\a\\t H:i"}}: -{{port_request.transition_reason.content}} +{{port_request.transition_reason.user.author}} commented on {{port_request.transition_reason.date.local|date:"F j, Y \\a\\t h:i A"}}: + > {{port_request.transition_reason.content}} {% endif %} -=== Port Request Numbers === -{% for number in port_request.numbers %} -- {{number}} -{% endfor %} + +Port Request Information + Name: {{port_request.name}} + State: {{port_request.port_state}} + ID: {{port_request.id}} + Scheduled Date: {{port_request.port_scheduled_date.local|date:"l, F j, Y h:i A"}} ({{port_request.port_scheduled_date.timezone}}) + Numbers: {{ port_request.numbers|join:", "|stringformat:"s"|wordwrap:40 }} diff --git a/applications/teletype/priv/templates/port_unconfirmed.html b/applications/teletype/priv/templates/port_unconfirmed.html index 0787fbabdc3..137fb62f71c 100644 --- a/applications/teletype/priv/templates/port_unconfirmed.html +++ b/applications/teletype/priv/templates/port_unconfirmed.html @@ -49,7 +49,7 @@
- |
{{port_request.transition_reason.user.first_name}} {{port_request.transition_reason.user.last_name}} commented on {{port_request.transition_reason.date.local|date:"l, F j, Y \\a\\t H:i"}}: +{{port_request.transition_reason.user.author}} commented on {{port_request.transition_reason.date.local|date:"F j, Y \\a\\t h:i A"}}: {{port_request.transition_reason.content}} |
+ - Name: {{port_request.name}}
+ - State: {{port_request.port_state}}
+ - ID: {{port_request.id}}
+ - Date Submitted: {{port_request.created.local|date:"l, F j, Y h:i A"}} ({{port_request.created.timezone}})
+ - Numbers:
{{ port_request.numbers|join:", " }}
+
Account Informationdiff --git a/applications/teletype/priv/templates/port_unconfirmed.text b/applications/teletype/priv/templates/port_unconfirmed.text index ae9d5ac7d4b..48b8b153f16 100644 --- a/applications/teletype/priv/templates/port_unconfirmed.text +++ b/applications/teletype/priv/templates/port_unconfirmed.text @@ -4,18 +4,20 @@ Port request "{{port_request.name}}" of account '{{account.name}}' has been submitted a while back, but didn't have any action on it. -Please review the port request and fully submitted or cancel it. -{% if port_request.transition_reason.content %} +Please review the port request and fully submitted or cancel it.{% if port_request.transition_reason.content %} -{{port_request.transition_reason.user.first_name}} {{port_request.transition_reason.user.last_name}} commented on {{port_request.transition_reason.date.local|date:"l, F j, Y \\a\\t H:i"}}: -{{port_request.transition_reason.content}} +{{port_request.transition_reason.user.author}} commented on {{port_request.transition_reason.date.local|date:"F j, Y \\a\\t h:i A"}}: + > {{port_request.transition_reason.content}} {% endif %} -=== Port Request Numbers === -{% for number in port_request.numbers %} -- {{number}} -{% endfor %} + +Port Request Information + Name: {{port_request.name}} + State: {{port_request.port_state}} + ID: {{port_request.id}} + Date Submitted: {{port_request.created.local|date:"l, F j, Y h:i A"}} ({{port_request.created.timezone}}) + Numbers: {{ port_request.numbers|join:", "|stringformat:"s"|wordwrap:40 }} diff --git a/applications/teletype/priv/templates/ported.html b/applications/teletype/priv/templates/ported.html index 8861033c875..86ca04fc6e5 100644 --- a/applications/teletype/priv/templates/ported.html +++ b/applications/teletype/priv/templates/ported.html @@ -49,7 +49,7 @@
- |
{{port_request.transition_reason.user.first_name}} {{port_request.transition_reason.user.last_name}} commented on {{port_request.transition_reason.date.local|date:"l, F j, Y \\a\\t H:i"}}: +{{port_request.transition_reason.user.author}} commented on {{port_request.transition_reason.date.local|date:"F j, Y \\a\\t h:i A"}}: {{port_request.transition_reason.content}} |
+ - Name: {{port_request.name}}
+ - State: {{port_request.port_state}}
+ - ID: {{port_request.id}}
+ - Ported Date: {{port_request.ported_date.local|date:"l, F j, Y h:i A"}} ({{port_request.ported_date.timezone}})
+ - Numbers:
{{ port_request.numbers|join:", " }}
+
Account Information
diff --git a/applications/teletype/priv/templates/ported.text b/applications/teletype/priv/templates/ported.text
index 404f3b4a09b..b292d5ec607 100644
--- a/applications/teletype/priv/templates/ported.text
+++ b/applications/teletype/priv/templates/ported.text
@@ -1,18 +1,20 @@
Port Request Successful
-Port request "{{port_request.name}}" of account '{{account.name}}' has been ported successfully.
-{% if port_request.transition_reason.content %}
+Port request "{{port_request.name}}" of account '{{account.name}}' has been ported successfully.{% if port_request.transition_reason.content %}
-{{port_request.transition_reason.user.first_name}} {{port_request.transition_reason.user.last_name}} commented on {{port_request.transition_reason.date.local|date:"l, F j, Y \\a\\t H:i"}}:
-{{port_request.transition_reason.content}}
+{{port_request.transition_reason.user.author}} commented on {{port_request.transition_reason.date.local|date:"F j, Y \\a\\t h:i A"}}:
+ > {{port_request.transition_reason.content}}
{% endif %}
-=== Port Request Numbers ===
-{% for number in port_request.numbers %}
-- {{number}}
-{% endfor %}
+
+Port Request Information
+ Name: {{port_request.name}}
+ State: {{port_request.port_state}}
+ ID: {{port_request.id}}
+ Ported Date: {{port_request.ported_date.local|date:"l, F j, Y h:i A"}} ({{port_request.ported_date.timezone}})
+ Numbers: {{ port_request.numbers|join:", "|stringformat:"s"|wordwrap:40 }}
diff --git a/applications/teletype/src/teletype_port_utils.erl b/applications/teletype/src/teletype_port_utils.erl
index effc1e36805..aa6523348db 100644
--- a/applications/teletype/src/teletype_port_utils.erl
+++ b/applications/teletype/src/teletype_port_utils.erl
@@ -12,6 +12,7 @@
-export([fix_port_request_data/2]).
-include("teletype.hrl").
+-include_lib("kazoo_number_manager/include/knm_port_request.hrl").
-spec is_comment_private(kz_json:object()) -> boolean().
is_comment_private(DataJObj) ->
@@ -110,7 +111,16 @@ fix_port_request_data(JObj, DataJObj) ->
-spec fix_numbers(kz_json:object(), kz_json:object()) -> kz_json:object().
fix_numbers(JObj, _DataJObj) ->
- NumbersJObj = kz_json:get_value(<<"numbers">>, JObj, kz_json:new()),
+ NumbersJObj = case kz_json:get_value(?PORT_PVT_STATE, JObj) of
+ ?PORT_COMPLETED ->
+ kz_json:get_json_value(<<"ported_numbers">>
+ ,JObj
+ %% in case the doc is not saved/replicated yet
+ ,kz_json:get_json_value(<<"numbers">>, JObj, kz_json:new())
+ );
+ _ ->
+ kz_json:get_json_value(<<"numbers">>, JObj, kz_json:new())
+ end,
Numbers = kz_json:foldl(fun fix_number_fold/3, [], NumbersJObj),
kz_json:set_value(<<"numbers">>, Numbers, JObj).
@@ -139,6 +149,7 @@ fix_comments(JObj, DataJObj) ->
Date = kz_json:from_list(teletype_util:fix_timestamp(Timestamp, DataJObj)),
Props = [{<<"date">>, Date}
,{<<"timestamp">>, kz_json:get_value(<<"local">>, Date)} %% backward compatibility
+ | get_commenter_info(DataJObj)
],
kz_json:set_value(<<"comment">>
,kz_json:set_values(Props, Comment)
@@ -148,9 +159,24 @@ fix_comments(JObj, DataJObj) ->
-spec fix_dates(kz_json:object(), kz_json:object()) -> kz_json:object().
fix_dates(JObj, _DataJObj) ->
- lists:foldl(fun fix_date_fold/2, JObj, [<<"transfer_date">>, <<"scheduled_date">>]).
+ lists:foldl(fun fix_date_fold/2
+ ,kz_json:set_value(<<"created">>, kz_doc:created(JObj), JObj)
+ ,[<<"transfer_date">>, <<"scheduled_date">>, <<"created">>, <<"ported_date">>]
+ ).
-spec fix_date_fold(kz_json:path(), kz_json:object()) -> kz_json:object().
+fix_date_fold(<<"ported_date">> = Key, JObj) ->
+ case [TransitionJObj
+ || TransitionJObj <- kz_json:get_list_value(<<"pvt_transitions">>, JObj, []),
+ kz_json:get_ne_binary_value([<<"transition">>, <<"new">>], TransitionJObj) =:= ?PORT_COMPLETED
+ ]
+ of
+ [] -> JObj;
+ [Completed|_] ->
+ Timestamp = kz_json:get_integer_value([<<"transition">>, <<"timestamp">>], Completed),
+ Date = kz_json:from_list(teletype_util:fix_timestamp(Timestamp, JObj)),
+ kz_json:set_value(Key, Date, JObj)
+ end;
fix_date_fold(Key, JObj) ->
case kz_json:get_integer_value(Key, JObj) of
'undefined' -> JObj;
@@ -161,17 +187,26 @@ fix_date_fold(Key, JObj) ->
-spec fix_notifications(kz_json:object(), kz_json:object()) -> kz_json:object().
fix_notifications(JObj, _DataJObj) ->
- kz_json:set_value(<<"customer_contact">>
- ,kz_json:get_value([<<"notifications">>, <<"email">>, <<"send_to">>], JObj)
- ,JObj %% not deleting the key for backward compatibility
- ).
+ case kz_json:get_value([<<"notifications">>, <<"email">>, <<"send_to">>], JObj) of
+ <<_/binary>> =Email -> kz_json:set_value(<<"customer_contact">>, [Email], JObj);
+ [_|_]=Emails -> kz_json:set_value(<<"customer_contact">>, Emails, JObj);
+ _ -> JObj
+ end.
-spec fix_carrier(kz_json:object(), kz_json:object()) -> kz_json:object().
fix_carrier(JObj, _DataJObj) ->
- kz_json:set_value(<<"service_provider">>
- ,kz_json:get_value(<<"carrier">>, JObj)
- ,JObj %% not deleting the key for backward compatibility
- ).
+ kz_json:set_values([{<<"losing_carrier">>, kz_json:get_first_defined([<<"carrier">>
+ ,[<<"billing">>, <<"carrier">>]
+ ,<<"bill_carrier">>
+ ]
+ ,JObj
+ ,<<"Unknown Carrier">>
+ )
+ }
+ ,{<<"winning_carrier">>, kz_json:get_value(<<"winning_carrier">>, JObj, <<"Unknown Carrier">>)}
+ ]
+ ,JObj %% not deleting the key for backward compatibility
+ ).
-spec fix_transfer_date(kz_json:object(), kz_json:object()) -> kz_json:object().
fix_transfer_date(JObj, _DataJObj) ->
@@ -194,9 +229,7 @@ maybe_add_reason(JObj, DataJObj) ->
case kz_json:get_ne_json_value(<<"reason">>, DataJObj) of
'undefined' -> JObj;
Reason ->
- UserInfo = get_commenter_info(kz_json:get_ne_binary_value(<<"account_id">>, Reason)
- ,kz_json:get_ne_binary_value(<<"user_id">>, Reason)
- ),
+ UserInfo = get_commenter_info(DataJObj),
Timestamp = kz_json:get_integer_value(<<"timestamp">>, Reason),
Date = kz_json:from_list(teletype_util:fix_timestamp(Timestamp, DataJObj)),
Props = [{<<"content">>, kz_json:get_ne_binary_value(<<"content">>, Reason)}
@@ -206,13 +239,67 @@ maybe_add_reason(JObj, DataJObj) ->
kz_json:set_value(<<"transition_reason">>, kz_json:from_list(Props), JObj)
end.
--spec get_commenter_info(kz_term:api_ne_binary(), kz_term:api_ne_binary()) -> kz_term:proplist().
-get_commenter_info(?NE_BINARY=AccountId, ?NE_BINARY=UserId) ->
- case kzd_user:fetch(AccountId, UserId) of
- {'ok', UserJObj} -> teletype_util:user_params(UserJObj);
- {'error', _Reason} ->
- lager:debug("failed to get commenter info: account_id ~s user_id ~s", [AccountId, UserId]),
- []
+-spec get_commenter_info(kz_json:object()) -> kz_term:proplist().
+get_commenter_info(DataJObj) ->
+ maybe_add_user_data(DataJObj
+ ,kz_json:get_first_defined([[<<"comment">>, <<"author">>]
+ ,[<<"reason">>, <<"author">>]
+ ], DataJObj)
+ ).
+
+-spec maybe_add_user_data(kz_json:object(), kz_term:api_binary()) -> kz_term:proplist().
+maybe_add_user_data(DataJObj, Author) ->
+ maybe_add_user_data(DataJObj, Author, teletype_util:is_preview(DataJObj)).
+
+-spec maybe_add_user_data(kz_json:object(), kz_term:api_binary(), boolean()) -> kz_term:proplist().
+maybe_add_user_data(DataJObj, Author, 'true') ->
+ AccountId = kz_json:get_ne_binary_value(<<"account_id">>, DataJObj),
+ case teletype_util:find_account_admin(AccountId) of
+ 'undefined' when Author =:= 'undefined' ->
+ [{<<"author">>, <<"An agent">>}];
+ 'undefined' ->
+ [{<<"author">>, Author}];
+ UserDoc when Author =:= 'undefined' ->
+ [{<<"author">>, first_last_name(kzd_user:first_name(UserDoc), kzd_user:last_name(UserDoc))}
+ | teletype_util:user_params(UserDoc)
+ ];
+ UserDoc ->
+ [{<<"author">>, Author}
+ | teletype_util:user_params(UserDoc)
+ ]
end;
-get_commenter_info(_, _) ->
- [].
+maybe_add_user_data(DataJObj, Author, 'false') ->
+ AccountId = kz_json:get_first_defined([[<<"comment">>, <<"account_id">>]
+ ,[<<"reason">>, <<"account_id">>]
+ ]
+ ,DataJObj
+ ),
+ UserId = kz_json:get_first_defined([[<<"comment">>, <<"user_id">>]
+ ,[<<"reason">>, <<"user_id">>]
+ ]
+ ,DataJObj
+ ),
+ case kzd_user:fetch(AccountId, UserId) of
+ {'error', _} when Author =:= 'undefined' ->
+ [{<<"author">>, <<"An agent">>}];
+ {'error', _} ->
+ [{<<"author">>, Author}];
+ {'ok', UserDoc} when Author =:= 'undefined' ->
+ [{<<"author">>, first_last_name(kzd_user:first_name(UserDoc), kzd_user:last_name(UserDoc))}
+ | teletype_util:user_params(UserDoc)
+ ];
+ {'ok', UserDoc} ->
+ [{<<"author">>, Author}
+ | teletype_util:user_params(UserDoc)
+ ]
+ end.
+
+-spec first_last_name(kz_term:api_binary(), kz_term:api_binary()) -> kz_term:ne_binary().
+first_last_name(?NE_BINARY = First, ?NE_BINARY = Last) ->
+ < |