@capillarytech/creatives-library 8.0.147-beta.5 → 8.0.148
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -11,10 +11,7 @@ import {
|
|
|
11
11
|
MOBILE_PUSH,
|
|
12
12
|
WHATSAPP,
|
|
13
13
|
PUSH,
|
|
14
|
-
ZALO
|
|
15
|
-
RCS,
|
|
16
|
-
LINE,
|
|
17
|
-
VIBER,
|
|
14
|
+
ZALO
|
|
18
15
|
} from "../../v2Containers/CreativesContainer/constants";
|
|
19
16
|
|
|
20
17
|
describe("transformerUtils", () => {
|
|
@@ -822,366 +819,6 @@ describe("transformerUtils", () => {
|
|
|
822
819
|
});
|
|
823
820
|
});
|
|
824
821
|
|
|
825
|
-
describe("RCS payload transformation", () => {
|
|
826
|
-
it("should transform RCS data with all options", () => {
|
|
827
|
-
const mockData = {
|
|
828
|
-
channel: RCS,
|
|
829
|
-
messageBody: "test rcs message",
|
|
830
|
-
accountId: "rcs-account-123",
|
|
831
|
-
accountName: "RCS Official Account",
|
|
832
|
-
templateConfigs: {
|
|
833
|
-
id: "template-789",
|
|
834
|
-
name: "notification_template",
|
|
835
|
-
template: "https://example.com/rcs-template",
|
|
836
|
-
varMapped: {
|
|
837
|
-
customer: "Mike Johnson",
|
|
838
|
-
notification: "Important Update",
|
|
839
|
-
urgency: "HIGH"
|
|
840
|
-
}
|
|
841
|
-
}
|
|
842
|
-
};
|
|
843
|
-
|
|
844
|
-
const options = {
|
|
845
|
-
loyaltyMetaData: {
|
|
846
|
-
actionId: "action-123",
|
|
847
|
-
ouId: 456,
|
|
848
|
-
clientName: "TestClient",
|
|
849
|
-
module: "TestModule",
|
|
850
|
-
transformedMessageDetails: {
|
|
851
|
-
rcsDeliverySettings: {
|
|
852
|
-
sendDate: "2023-01-01",
|
|
853
|
-
priority: "URGENT"
|
|
854
|
-
}
|
|
855
|
-
}
|
|
856
|
-
}
|
|
857
|
-
};
|
|
858
|
-
|
|
859
|
-
const result = transformChannelPayload(mockData, options);
|
|
860
|
-
|
|
861
|
-
// Check base payload
|
|
862
|
-
expect(result.centralCommsPayload.sourceEntityId).toEqual("action-123");
|
|
863
|
-
expect(result.centralCommsPayload.ouId).toEqual(456);
|
|
864
|
-
expect(result.centralCommsPayload.clientName).toEqual("TestClient");
|
|
865
|
-
expect(result.centralCommsPayload.module).toEqual("TestModule");
|
|
866
|
-
// Check RCS-specific content
|
|
867
|
-
expect(result.centralCommsPayload.rcsMessageContent.messageBody).toEqual(
|
|
868
|
-
"test rcs message"
|
|
869
|
-
);
|
|
870
|
-
expect(result.centralCommsPayload.rcsMessageContent.accountId).toEqual(
|
|
871
|
-
"rcs-account-123"
|
|
872
|
-
);
|
|
873
|
-
expect(result.centralCommsPayload.rcsMessageContent.accountName).toEqual(
|
|
874
|
-
"RCS Official Account"
|
|
875
|
-
);
|
|
876
|
-
// Check template configs
|
|
877
|
-
expect(
|
|
878
|
-
result.centralCommsPayload.rcsMessageContent.templateConfigs.id
|
|
879
|
-
).toEqual("template-789");
|
|
880
|
-
expect(
|
|
881
|
-
result.centralCommsPayload.rcsMessageContent.templateConfigs.name
|
|
882
|
-
).toEqual("notification_template");
|
|
883
|
-
expect(
|
|
884
|
-
result.centralCommsPayload.rcsMessageContent.templateConfigs.template
|
|
885
|
-
).toEqual("https://example.com/rcs-template");
|
|
886
|
-
expect(
|
|
887
|
-
result.centralCommsPayload.rcsMessageContent.templateConfigs.varMapped
|
|
888
|
-
).toEqual({
|
|
889
|
-
customer: "Mike Johnson",
|
|
890
|
-
notification: "Important Update",
|
|
891
|
-
urgency: "HIGH"
|
|
892
|
-
});
|
|
893
|
-
// Check delivery settings
|
|
894
|
-
expect(result.centralCommsPayload.rcsDeliverySettings).toEqual({
|
|
895
|
-
sendDate: "2023-01-01",
|
|
896
|
-
priority: "URGENT"
|
|
897
|
-
});
|
|
898
|
-
});
|
|
899
|
-
|
|
900
|
-
it("should handle missing template configs", () => {
|
|
901
|
-
const mockData = {
|
|
902
|
-
channel: RCS,
|
|
903
|
-
messageBody: "test rcs message"
|
|
904
|
-
};
|
|
905
|
-
|
|
906
|
-
const result = transformChannelPayload(mockData);
|
|
907
|
-
|
|
908
|
-
expect(
|
|
909
|
-
result.centralCommsPayload.rcsMessageContent.templateConfigs
|
|
910
|
-
).toEqual({});
|
|
911
|
-
});
|
|
912
|
-
|
|
913
|
-
it("should handle undefined rcsDeliverySettings", () => {
|
|
914
|
-
const mockData = {
|
|
915
|
-
channel: RCS,
|
|
916
|
-
messageBody: "test rcs message"
|
|
917
|
-
};
|
|
918
|
-
|
|
919
|
-
const options = {
|
|
920
|
-
loyaltyMetaData: {
|
|
921
|
-
transformedMessageDetails: {}
|
|
922
|
-
}
|
|
923
|
-
};
|
|
924
|
-
|
|
925
|
-
const result = transformChannelPayload(mockData, options);
|
|
926
|
-
|
|
927
|
-
expect(result.centralCommsPayload.rcsDeliverySettings).toEqual({});
|
|
928
|
-
});
|
|
929
|
-
|
|
930
|
-
it("should initialize default values when fields are missing", () => {
|
|
931
|
-
const mockData = {
|
|
932
|
-
channel: RCS
|
|
933
|
-
};
|
|
934
|
-
|
|
935
|
-
const result = transformChannelPayload(mockData);
|
|
936
|
-
|
|
937
|
-
expect(result.centralCommsPayload.rcsMessageContent.messageBody).toEqual(
|
|
938
|
-
""
|
|
939
|
-
);
|
|
940
|
-
expect(result.centralCommsPayload.rcsMessageContent.accountId).toEqual(
|
|
941
|
-
""
|
|
942
|
-
);
|
|
943
|
-
expect(result.centralCommsPayload.rcsMessageContent.accountName).toEqual(
|
|
944
|
-
""
|
|
945
|
-
);
|
|
946
|
-
});
|
|
947
|
-
});
|
|
948
|
-
|
|
949
|
-
describe("LINE payload transformation", () => {
|
|
950
|
-
it("should transform LINE data correctly with minimal data", () => {
|
|
951
|
-
const mockData = {
|
|
952
|
-
channel: LINE,
|
|
953
|
-
messageBody: "test line message"
|
|
954
|
-
};
|
|
955
|
-
|
|
956
|
-
const result = transformChannelPayload(mockData);
|
|
957
|
-
|
|
958
|
-
expect(result.centralCommsPayload).toBeDefined();
|
|
959
|
-
expect(result.centralCommsPayload.channel).toEqual(LINE);
|
|
960
|
-
expect(result.centralCommsPayload.lineMessageContent.messageBody).toEqual(
|
|
961
|
-
"test line message"
|
|
962
|
-
);
|
|
963
|
-
expect(result.centralCommsPayload.clientName).toEqual("VENENO");
|
|
964
|
-
});
|
|
965
|
-
|
|
966
|
-
it("should transform LINE data with all options", () => {
|
|
967
|
-
const mockData = {
|
|
968
|
-
channel: LINE,
|
|
969
|
-
messageBody: "test line message",
|
|
970
|
-
accountId: 12345,
|
|
971
|
-
accountDetails: "LINE Official Account Details"
|
|
972
|
-
};
|
|
973
|
-
|
|
974
|
-
const options = {
|
|
975
|
-
loyaltyMetaData: {
|
|
976
|
-
actionId: "action-123",
|
|
977
|
-
ouId: 456,
|
|
978
|
-
clientName: "TestClient",
|
|
979
|
-
module: "TestModule",
|
|
980
|
-
transformedMessageDetails: {
|
|
981
|
-
lineDeliverySettings: {
|
|
982
|
-
sendDate: "2023-01-01",
|
|
983
|
-
priority: "NORMAL"
|
|
984
|
-
}
|
|
985
|
-
}
|
|
986
|
-
}
|
|
987
|
-
};
|
|
988
|
-
|
|
989
|
-
const result = transformChannelPayload(mockData, options);
|
|
990
|
-
|
|
991
|
-
// Check base payload
|
|
992
|
-
expect(result.centralCommsPayload.sourceEntityId).toEqual("action-123");
|
|
993
|
-
expect(result.centralCommsPayload.ouId).toEqual(456);
|
|
994
|
-
expect(result.centralCommsPayload.clientName).toEqual("TestClient");
|
|
995
|
-
expect(result.centralCommsPayload.module).toEqual("TestModule");
|
|
996
|
-
|
|
997
|
-
// Check LINE-specific content
|
|
998
|
-
expect(result.centralCommsPayload.lineMessageContent.messageBody).toEqual(
|
|
999
|
-
"test line message"
|
|
1000
|
-
);
|
|
1001
|
-
expect(result.centralCommsPayload.lineMessageContent.accountId).toEqual(12345);
|
|
1002
|
-
expect(result.centralCommsPayload.lineMessageContent.accountDetails).toEqual(
|
|
1003
|
-
"LINE Official Account Details"
|
|
1004
|
-
);
|
|
1005
|
-
|
|
1006
|
-
// Check delivery settings
|
|
1007
|
-
expect(result.centralCommsPayload.lineDeliverySettings).toEqual({
|
|
1008
|
-
sendDate: "2023-01-01",
|
|
1009
|
-
priority: "NORMAL"
|
|
1010
|
-
});
|
|
1011
|
-
});
|
|
1012
|
-
|
|
1013
|
-
it("should handle undefined lineDeliverySettings", () => {
|
|
1014
|
-
const mockData = {
|
|
1015
|
-
channel: LINE,
|
|
1016
|
-
messageBody: "test line message"
|
|
1017
|
-
};
|
|
1018
|
-
|
|
1019
|
-
const options = {
|
|
1020
|
-
loyaltyMetaData: {
|
|
1021
|
-
transformedMessageDetails: {}
|
|
1022
|
-
}
|
|
1023
|
-
};
|
|
1024
|
-
|
|
1025
|
-
const result = transformChannelPayload(mockData, options);
|
|
1026
|
-
|
|
1027
|
-
expect(result.centralCommsPayload.lineDeliverySettings).toEqual({});
|
|
1028
|
-
});
|
|
1029
|
-
|
|
1030
|
-
it("should initialize default values when fields are missing", () => {
|
|
1031
|
-
const mockData = {
|
|
1032
|
-
channel: LINE
|
|
1033
|
-
};
|
|
1034
|
-
|
|
1035
|
-
const result = transformChannelPayload(mockData);
|
|
1036
|
-
|
|
1037
|
-
expect(result.centralCommsPayload.lineMessageContent.messageBody).toEqual(
|
|
1038
|
-
""
|
|
1039
|
-
);
|
|
1040
|
-
expect(result.centralCommsPayload.lineMessageContent.accountId).toEqual(0);
|
|
1041
|
-
expect(result.centralCommsPayload.lineMessageContent.accountDetails).toEqual(
|
|
1042
|
-
""
|
|
1043
|
-
);
|
|
1044
|
-
});
|
|
1045
|
-
|
|
1046
|
-
it("should preserve all original LINE data properties", () => {
|
|
1047
|
-
const mockData = {
|
|
1048
|
-
channel: LINE,
|
|
1049
|
-
messageBody: "test line message",
|
|
1050
|
-
accountId: 12345,
|
|
1051
|
-
accountDetails: "LINE Official Account Details",
|
|
1052
|
-
customField1: "custom value 1",
|
|
1053
|
-
customField2: "custom value 2"
|
|
1054
|
-
};
|
|
1055
|
-
|
|
1056
|
-
const result = transformChannelPayload(mockData);
|
|
1057
|
-
|
|
1058
|
-
expect(result.centralCommsPayload.lineMessageContent.customField1).toEqual(
|
|
1059
|
-
"custom value 1"
|
|
1060
|
-
);
|
|
1061
|
-
expect(result.centralCommsPayload.lineMessageContent.customField2).toEqual(
|
|
1062
|
-
"custom value 2"
|
|
1063
|
-
);
|
|
1064
|
-
});
|
|
1065
|
-
});
|
|
1066
|
-
|
|
1067
|
-
describe("VIBER payload transformation", () => {
|
|
1068
|
-
it("should transform VIBER data correctly with minimal data", () => {
|
|
1069
|
-
const mockData = {
|
|
1070
|
-
channel: VIBER,
|
|
1071
|
-
messageBody: "test viber message"
|
|
1072
|
-
};
|
|
1073
|
-
|
|
1074
|
-
const result = transformChannelPayload(mockData);
|
|
1075
|
-
|
|
1076
|
-
expect(result.centralCommsPayload).toBeDefined();
|
|
1077
|
-
expect(result.centralCommsPayload.channel).toEqual(VIBER);
|
|
1078
|
-
expect(result.centralCommsPayload.viberMessageContent.messageBody).toEqual(
|
|
1079
|
-
"test viber message"
|
|
1080
|
-
);
|
|
1081
|
-
expect(result.centralCommsPayload.clientName).toEqual("VENENO");
|
|
1082
|
-
});
|
|
1083
|
-
|
|
1084
|
-
it("should transform VIBER data with all options", () => {
|
|
1085
|
-
const mockData = {
|
|
1086
|
-
channel: VIBER,
|
|
1087
|
-
messageBody: "test viber message",
|
|
1088
|
-
accountId: 67890,
|
|
1089
|
-
accountDetails: "VIBER Official Account Details"
|
|
1090
|
-
};
|
|
1091
|
-
|
|
1092
|
-
const options = {
|
|
1093
|
-
loyaltyMetaData: {
|
|
1094
|
-
actionId: "action-123",
|
|
1095
|
-
ouId: 456,
|
|
1096
|
-
clientName: "TestClient",
|
|
1097
|
-
module: "TestModule",
|
|
1098
|
-
transformedMessageDetails: {
|
|
1099
|
-
viberDeliverySettings: {
|
|
1100
|
-
sendDate: "2023-01-01",
|
|
1101
|
-
priority: "HIGH"
|
|
1102
|
-
}
|
|
1103
|
-
}
|
|
1104
|
-
}
|
|
1105
|
-
};
|
|
1106
|
-
|
|
1107
|
-
const result = transformChannelPayload(mockData, options);
|
|
1108
|
-
|
|
1109
|
-
// Check base payload
|
|
1110
|
-
expect(result.centralCommsPayload.sourceEntityId).toEqual("action-123");
|
|
1111
|
-
expect(result.centralCommsPayload.ouId).toEqual(456);
|
|
1112
|
-
expect(result.centralCommsPayload.clientName).toEqual("TestClient");
|
|
1113
|
-
expect(result.centralCommsPayload.module).toEqual("TestModule");
|
|
1114
|
-
|
|
1115
|
-
// Check VIBER-specific content
|
|
1116
|
-
expect(result.centralCommsPayload.viberMessageContent.messageBody).toEqual(
|
|
1117
|
-
"test viber message"
|
|
1118
|
-
);
|
|
1119
|
-
expect(result.centralCommsPayload.viberMessageContent.accountId).toEqual(67890);
|
|
1120
|
-
expect(result.centralCommsPayload.viberMessageContent.accountDetails).toEqual(
|
|
1121
|
-
"VIBER Official Account Details"
|
|
1122
|
-
);
|
|
1123
|
-
|
|
1124
|
-
// Check delivery settings
|
|
1125
|
-
expect(result.centralCommsPayload.viberDeliverySettings).toEqual({
|
|
1126
|
-
sendDate: "2023-01-01",
|
|
1127
|
-
priority: "HIGH"
|
|
1128
|
-
});
|
|
1129
|
-
});
|
|
1130
|
-
|
|
1131
|
-
it("should handle undefined viberDeliverySettings", () => {
|
|
1132
|
-
const mockData = {
|
|
1133
|
-
channel: VIBER,
|
|
1134
|
-
messageBody: "test viber message"
|
|
1135
|
-
};
|
|
1136
|
-
|
|
1137
|
-
const options = {
|
|
1138
|
-
loyaltyMetaData: {
|
|
1139
|
-
transformedMessageDetails: {}
|
|
1140
|
-
}
|
|
1141
|
-
};
|
|
1142
|
-
|
|
1143
|
-
const result = transformChannelPayload(mockData, options);
|
|
1144
|
-
|
|
1145
|
-
expect(result.centralCommsPayload.viberDeliverySettings).toEqual({});
|
|
1146
|
-
});
|
|
1147
|
-
|
|
1148
|
-
it("should initialize default values when fields are missing", () => {
|
|
1149
|
-
const mockData = {
|
|
1150
|
-
channel: VIBER
|
|
1151
|
-
};
|
|
1152
|
-
|
|
1153
|
-
const result = transformChannelPayload(mockData);
|
|
1154
|
-
|
|
1155
|
-
expect(result.centralCommsPayload.viberMessageContent.messageBody).toEqual(
|
|
1156
|
-
""
|
|
1157
|
-
);
|
|
1158
|
-
expect(result.centralCommsPayload.viberMessageContent.accountId).toEqual(0);
|
|
1159
|
-
expect(result.centralCommsPayload.viberMessageContent.accountDetails).toEqual(
|
|
1160
|
-
""
|
|
1161
|
-
);
|
|
1162
|
-
});
|
|
1163
|
-
|
|
1164
|
-
it("should preserve all original VIBER data properties", () => {
|
|
1165
|
-
const mockData = {
|
|
1166
|
-
channel: VIBER,
|
|
1167
|
-
messageBody: "test viber message",
|
|
1168
|
-
accountId: 67890,
|
|
1169
|
-
accountDetails: "VIBER Official Account Details",
|
|
1170
|
-
customField1: "custom value 1",
|
|
1171
|
-
customField2: "custom value 2"
|
|
1172
|
-
};
|
|
1173
|
-
|
|
1174
|
-
const result = transformChannelPayload(mockData);
|
|
1175
|
-
|
|
1176
|
-
expect(result.centralCommsPayload.viberMessageContent.customField1).toEqual(
|
|
1177
|
-
"custom value 1"
|
|
1178
|
-
);
|
|
1179
|
-
expect(result.centralCommsPayload.viberMessageContent.customField2).toEqual(
|
|
1180
|
-
"custom value 2"
|
|
1181
|
-
);
|
|
1182
|
-
});
|
|
1183
|
-
});
|
|
1184
|
-
|
|
1185
822
|
describe("getTemplateDiffState", () => {
|
|
1186
823
|
it("should return false for unsupported channel", () => {
|
|
1187
824
|
const result = getTemplateDiffState("UNSUPPORTED_CHANNEL", {}, {});
|
|
@@ -2487,501 +2124,4 @@ describe("transformerUtils", () => {
|
|
|
2487
2124
|
).toBe(true);
|
|
2488
2125
|
});
|
|
2489
2126
|
});
|
|
2490
|
-
|
|
2491
|
-
describe("LINE template diff checking", () => {
|
|
2492
|
-
it("should detect changes in message content", () => {
|
|
2493
|
-
const oldData = {
|
|
2494
|
-
transformedMessageDetails: {
|
|
2495
|
-
lineMessageContent: {
|
|
2496
|
-
messageBody: "old line message",
|
|
2497
|
-
accountId: "same-account",
|
|
2498
|
-
accountDetails: "same-details",
|
|
2499
|
-
},
|
|
2500
|
-
},
|
|
2501
|
-
};
|
|
2502
|
-
|
|
2503
|
-
const newData = {
|
|
2504
|
-
messageBody: "new line message",
|
|
2505
|
-
accountId: "same-account",
|
|
2506
|
-
accountDetails: "same-details",
|
|
2507
|
-
};
|
|
2508
|
-
|
|
2509
|
-
const result = getTemplateDiffState(LINE, oldData, newData);
|
|
2510
|
-
|
|
2511
|
-
expect(result).toBe(true);
|
|
2512
|
-
});
|
|
2513
|
-
|
|
2514
|
-
it("should detect changes in accountId", () => {
|
|
2515
|
-
const oldData = {
|
|
2516
|
-
transformedMessageDetails: {
|
|
2517
|
-
lineMessageContent: {
|
|
2518
|
-
messageBody: "same line message",
|
|
2519
|
-
accountId: "old-account-123",
|
|
2520
|
-
accountDetails: "same-details",
|
|
2521
|
-
},
|
|
2522
|
-
},
|
|
2523
|
-
};
|
|
2524
|
-
|
|
2525
|
-
const newData = {
|
|
2526
|
-
messageBody: "same line message",
|
|
2527
|
-
accountId: "new-account-123",
|
|
2528
|
-
accountDetails: "same-details",
|
|
2529
|
-
};
|
|
2530
|
-
|
|
2531
|
-
const result = getTemplateDiffState(LINE, oldData, newData);
|
|
2532
|
-
|
|
2533
|
-
expect(result).toBe(true);
|
|
2534
|
-
});
|
|
2535
|
-
|
|
2536
|
-
it("should detect changes in accountDetails", () => {
|
|
2537
|
-
const oldData = {
|
|
2538
|
-
transformedMessageDetails: {
|
|
2539
|
-
lineMessageContent: {
|
|
2540
|
-
messageBody: "same line message",
|
|
2541
|
-
accountId: "same-account",
|
|
2542
|
-
accountDetails: "old-account-details",
|
|
2543
|
-
},
|
|
2544
|
-
},
|
|
2545
|
-
};
|
|
2546
|
-
|
|
2547
|
-
const newData = {
|
|
2548
|
-
messageBody: "same line message",
|
|
2549
|
-
accountId: "same-account",
|
|
2550
|
-
accountDetails: "new-account-details",
|
|
2551
|
-
};
|
|
2552
|
-
|
|
2553
|
-
const result = getTemplateDiffState(LINE, oldData, newData);
|
|
2554
|
-
|
|
2555
|
-
expect(result).toBe(true);
|
|
2556
|
-
});
|
|
2557
|
-
|
|
2558
|
-
it("should return false when LINE content is the same", () => {
|
|
2559
|
-
const oldData = {
|
|
2560
|
-
transformedMessageDetails: {
|
|
2561
|
-
lineMessageContent: {
|
|
2562
|
-
messageBody: "same line message",
|
|
2563
|
-
accountId: "same-account",
|
|
2564
|
-
accountDetails: "same-details",
|
|
2565
|
-
},
|
|
2566
|
-
},
|
|
2567
|
-
};
|
|
2568
|
-
|
|
2569
|
-
const newData = {
|
|
2570
|
-
messageBody: "same line message",
|
|
2571
|
-
accountId: "same-account",
|
|
2572
|
-
accountDetails: "same-details",
|
|
2573
|
-
};
|
|
2574
|
-
|
|
2575
|
-
const result = getTemplateDiffState(LINE, oldData, newData);
|
|
2576
|
-
|
|
2577
|
-
expect(result).toBe(false);
|
|
2578
|
-
});
|
|
2579
|
-
|
|
2580
|
-
it("should detect actual changes despite type differences", () => {
|
|
2581
|
-
const oldData = {
|
|
2582
|
-
transformedMessageDetails: {
|
|
2583
|
-
lineMessageContent: {
|
|
2584
|
-
messageBody: "same message",
|
|
2585
|
-
accountId: 12345,
|
|
2586
|
-
accountDetails: "same details",
|
|
2587
|
-
},
|
|
2588
|
-
},
|
|
2589
|
-
};
|
|
2590
|
-
|
|
2591
|
-
const newData = {
|
|
2592
|
-
messageBody: "same message",
|
|
2593
|
-
accountId: "12346",
|
|
2594
|
-
accountDetails: "same details",
|
|
2595
|
-
};
|
|
2596
|
-
|
|
2597
|
-
// Should return true because "12345" !== "12346"
|
|
2598
|
-
const result = getTemplateDiffState(LINE, oldData, newData);
|
|
2599
|
-
|
|
2600
|
-
expect(result).toBe(true);
|
|
2601
|
-
});
|
|
2602
|
-
|
|
2603
|
-
it("should handle undefined/null values gracefully", () => {
|
|
2604
|
-
// Both values undefined
|
|
2605
|
-
expect(
|
|
2606
|
-
getTemplateDiffState(
|
|
2607
|
-
LINE,
|
|
2608
|
-
{ transformedMessageDetails: { lineMessageContent: {} } },
|
|
2609
|
-
{}
|
|
2610
|
-
)
|
|
2611
|
-
).toBe(false);
|
|
2612
|
-
|
|
2613
|
-
// Old value undefined, new value defined
|
|
2614
|
-
expect(
|
|
2615
|
-
getTemplateDiffState(
|
|
2616
|
-
LINE,
|
|
2617
|
-
{ transformedMessageDetails: { lineMessageContent: {} } },
|
|
2618
|
-
{ messageBody: "new message" }
|
|
2619
|
-
)
|
|
2620
|
-
).toBe(true);
|
|
2621
|
-
|
|
2622
|
-
// Old value defined, new value undefined
|
|
2623
|
-
expect(
|
|
2624
|
-
getTemplateDiffState(
|
|
2625
|
-
LINE,
|
|
2626
|
-
{
|
|
2627
|
-
transformedMessageDetails: {
|
|
2628
|
-
lineMessageContent: { messageBody: "old message" }
|
|
2629
|
-
}
|
|
2630
|
-
},
|
|
2631
|
-
{}
|
|
2632
|
-
)
|
|
2633
|
-
).toBe(true);
|
|
2634
|
-
});
|
|
2635
|
-
});
|
|
2636
|
-
|
|
2637
|
-
describe("VIBER template diff checking", () => {
|
|
2638
|
-
it("should detect changes in message content", () => {
|
|
2639
|
-
const oldData = {
|
|
2640
|
-
transformedMessageDetails: {
|
|
2641
|
-
viberMessageContent: {
|
|
2642
|
-
messageBody: "old viber message",
|
|
2643
|
-
accountId: "same-account",
|
|
2644
|
-
accountDetails: "same-details",
|
|
2645
|
-
},
|
|
2646
|
-
},
|
|
2647
|
-
};
|
|
2648
|
-
|
|
2649
|
-
const newData = {
|
|
2650
|
-
messageBody: "new viber message",
|
|
2651
|
-
accountId: "same-account",
|
|
2652
|
-
accountDetails: "same-details",
|
|
2653
|
-
};
|
|
2654
|
-
|
|
2655
|
-
const result = getTemplateDiffState(VIBER, oldData, newData);
|
|
2656
|
-
|
|
2657
|
-
expect(result).toBe(true);
|
|
2658
|
-
});
|
|
2659
|
-
|
|
2660
|
-
it("should detect changes in accountId", () => {
|
|
2661
|
-
const oldData = {
|
|
2662
|
-
transformedMessageDetails: {
|
|
2663
|
-
viberMessageContent: {
|
|
2664
|
-
messageBody: "same viber message",
|
|
2665
|
-
accountId: "old-account-123",
|
|
2666
|
-
accountDetails: "same-details",
|
|
2667
|
-
},
|
|
2668
|
-
},
|
|
2669
|
-
};
|
|
2670
|
-
|
|
2671
|
-
const newData = {
|
|
2672
|
-
messageBody: "same viber message",
|
|
2673
|
-
accountId: "new-account-123",
|
|
2674
|
-
accountDetails: "same-details",
|
|
2675
|
-
};
|
|
2676
|
-
|
|
2677
|
-
const result = getTemplateDiffState(VIBER, oldData, newData);
|
|
2678
|
-
|
|
2679
|
-
expect(result).toBe(true);
|
|
2680
|
-
});
|
|
2681
|
-
|
|
2682
|
-
it("should detect changes in accountDetails", () => {
|
|
2683
|
-
const oldData = {
|
|
2684
|
-
transformedMessageDetails: {
|
|
2685
|
-
viberMessageContent: {
|
|
2686
|
-
messageBody: "same viber message",
|
|
2687
|
-
accountId: "same-account",
|
|
2688
|
-
accountDetails: "old-account-details",
|
|
2689
|
-
},
|
|
2690
|
-
},
|
|
2691
|
-
};
|
|
2692
|
-
|
|
2693
|
-
const newData = {
|
|
2694
|
-
messageBody: "same viber message",
|
|
2695
|
-
accountId: "same-account",
|
|
2696
|
-
accountDetails: "new-account-details",
|
|
2697
|
-
};
|
|
2698
|
-
|
|
2699
|
-
const result = getTemplateDiffState(VIBER, oldData, newData);
|
|
2700
|
-
|
|
2701
|
-
expect(result).toBe(true);
|
|
2702
|
-
});
|
|
2703
|
-
|
|
2704
|
-
it("should return false when VIBER content is the same", () => {
|
|
2705
|
-
const oldData = {
|
|
2706
|
-
transformedMessageDetails: {
|
|
2707
|
-
viberMessageContent: {
|
|
2708
|
-
messageBody: "same viber message",
|
|
2709
|
-
accountId: "same-account",
|
|
2710
|
-
accountDetails: "same-details",
|
|
2711
|
-
},
|
|
2712
|
-
},
|
|
2713
|
-
};
|
|
2714
|
-
|
|
2715
|
-
const newData = {
|
|
2716
|
-
messageBody: "same viber message",
|
|
2717
|
-
accountId: "same-account",
|
|
2718
|
-
accountDetails: "same-details",
|
|
2719
|
-
};
|
|
2720
|
-
|
|
2721
|
-
const result = getTemplateDiffState(VIBER, oldData, newData);
|
|
2722
|
-
|
|
2723
|
-
expect(result).toBe(false);
|
|
2724
|
-
});
|
|
2725
|
-
|
|
2726
|
-
it("should detect actual changes despite type differences", () => {
|
|
2727
|
-
const oldData = {
|
|
2728
|
-
transformedMessageDetails: {
|
|
2729
|
-
viberMessageContent: {
|
|
2730
|
-
messageBody: "same message",
|
|
2731
|
-
accountId: 67890,
|
|
2732
|
-
accountDetails: "same details",
|
|
2733
|
-
},
|
|
2734
|
-
},
|
|
2735
|
-
};
|
|
2736
|
-
|
|
2737
|
-
const newData = {
|
|
2738
|
-
messageBody: "same message",
|
|
2739
|
-
accountId: "67891",
|
|
2740
|
-
accountDetails: "same details",
|
|
2741
|
-
};
|
|
2742
|
-
|
|
2743
|
-
// Should return true because "67890" !== "67891"
|
|
2744
|
-
const result = getTemplateDiffState(VIBER, oldData, newData);
|
|
2745
|
-
|
|
2746
|
-
expect(result).toBe(true);
|
|
2747
|
-
});
|
|
2748
|
-
|
|
2749
|
-
it("should handle undefined/null values gracefully", () => {
|
|
2750
|
-
// Both values undefined
|
|
2751
|
-
expect(
|
|
2752
|
-
getTemplateDiffState(
|
|
2753
|
-
VIBER,
|
|
2754
|
-
{ transformedMessageDetails: { viberMessageContent: {} } },
|
|
2755
|
-
{}
|
|
2756
|
-
)
|
|
2757
|
-
).toBe(false);
|
|
2758
|
-
|
|
2759
|
-
// Old value undefined, new value defined
|
|
2760
|
-
expect(
|
|
2761
|
-
getTemplateDiffState(
|
|
2762
|
-
VIBER,
|
|
2763
|
-
{ transformedMessageDetails: { viberMessageContent: {} } },
|
|
2764
|
-
{ messageBody: "new message" }
|
|
2765
|
-
)
|
|
2766
|
-
).toBe(true);
|
|
2767
|
-
|
|
2768
|
-
// Old value defined, new value undefined
|
|
2769
|
-
expect(
|
|
2770
|
-
getTemplateDiffState(
|
|
2771
|
-
VIBER,
|
|
2772
|
-
{
|
|
2773
|
-
transformedMessageDetails: {
|
|
2774
|
-
viberMessageContent: { messageBody: "old message" }
|
|
2775
|
-
}
|
|
2776
|
-
},
|
|
2777
|
-
{}
|
|
2778
|
-
)
|
|
2779
|
-
).toBe(true);
|
|
2780
|
-
});
|
|
2781
|
-
});
|
|
2782
|
-
|
|
2783
|
-
describe("RCS template diff checking", () => {
|
|
2784
|
-
it("should detect changes in accountId", () => {
|
|
2785
|
-
const oldData = {
|
|
2786
|
-
transformedMessageDetails: {
|
|
2787
|
-
rcsMessageContent: {
|
|
2788
|
-
accountId: "old-account-123",
|
|
2789
|
-
accountName: "same-account-name",
|
|
2790
|
-
templateConfigs: {
|
|
2791
|
-
id: "same-template-123",
|
|
2792
|
-
name: "same_template_name",
|
|
2793
|
-
template: "same_template_content",
|
|
2794
|
-
varMapped: { customer: "John" },
|
|
2795
|
-
},
|
|
2796
|
-
},
|
|
2797
|
-
},
|
|
2798
|
-
};
|
|
2799
|
-
|
|
2800
|
-
const newData = {
|
|
2801
|
-
accountId: "new-account-123",
|
|
2802
|
-
accountName: "same-account-name",
|
|
2803
|
-
templateConfigs: {
|
|
2804
|
-
id: "same-template-123",
|
|
2805
|
-
name: "same_template_name",
|
|
2806
|
-
template: "same_template_content",
|
|
2807
|
-
varMapped: { customer: "John" },
|
|
2808
|
-
},
|
|
2809
|
-
};
|
|
2810
|
-
|
|
2811
|
-
const result = getTemplateDiffState(RCS, oldData, newData);
|
|
2812
|
-
|
|
2813
|
-
expect(result).toBe(true);
|
|
2814
|
-
});
|
|
2815
|
-
|
|
2816
|
-
it("should detect changes in accountName", () => {
|
|
2817
|
-
const oldData = {
|
|
2818
|
-
transformedMessageDetails: {
|
|
2819
|
-
rcsMessageContent: {
|
|
2820
|
-
accountId: "same-account",
|
|
2821
|
-
accountName: "old-account-name",
|
|
2822
|
-
templateConfigs: {
|
|
2823
|
-
id: "same-template-123",
|
|
2824
|
-
name: "same_template_name",
|
|
2825
|
-
template: "same_template_content",
|
|
2826
|
-
varMapped: { customer: "John" },
|
|
2827
|
-
},
|
|
2828
|
-
},
|
|
2829
|
-
},
|
|
2830
|
-
};
|
|
2831
|
-
|
|
2832
|
-
const newData = {
|
|
2833
|
-
accountId: "same-account",
|
|
2834
|
-
accountName: "new-account-name",
|
|
2835
|
-
templateConfigs: {
|
|
2836
|
-
id: "same-template-123",
|
|
2837
|
-
name: "same_template_name",
|
|
2838
|
-
template: "same_template_content",
|
|
2839
|
-
varMapped: { customer: "John" },
|
|
2840
|
-
},
|
|
2841
|
-
};
|
|
2842
|
-
|
|
2843
|
-
const result = getTemplateDiffState(RCS, oldData, newData);
|
|
2844
|
-
|
|
2845
|
-
expect(result).toBe(true);
|
|
2846
|
-
});
|
|
2847
|
-
|
|
2848
|
-
it("should detect changes in template configs structure", () => {
|
|
2849
|
-
const oldData = {
|
|
2850
|
-
transformedMessageDetails: {
|
|
2851
|
-
rcsMessageContent: {
|
|
2852
|
-
accountId: "same-account",
|
|
2853
|
-
accountName: "same-account-name",
|
|
2854
|
-
templateConfigs: {
|
|
2855
|
-
id: "same-template-123",
|
|
2856
|
-
name: "same_template_name",
|
|
2857
|
-
// Missing template and varMapped properties
|
|
2858
|
-
},
|
|
2859
|
-
},
|
|
2860
|
-
},
|
|
2861
|
-
};
|
|
2862
|
-
|
|
2863
|
-
const newData = {
|
|
2864
|
-
accountId: "same-account",
|
|
2865
|
-
accountName: "same-account-name",
|
|
2866
|
-
templateConfigs: {
|
|
2867
|
-
id: "same-template-123",
|
|
2868
|
-
name: "same_template_name",
|
|
2869
|
-
template: "same_template_content",
|
|
2870
|
-
varMapped: { customer: "John" },
|
|
2871
|
-
},
|
|
2872
|
-
};
|
|
2873
|
-
|
|
2874
|
-
const result = getTemplateDiffState(RCS, oldData, newData);
|
|
2875
|
-
|
|
2876
|
-
expect(result).toBe(true);
|
|
2877
|
-
});
|
|
2878
|
-
|
|
2879
|
-
it("should detect changes in account details", () => {
|
|
2880
|
-
const oldData = {
|
|
2881
|
-
transformedMessageDetails: {
|
|
2882
|
-
rcsMessageContent: {
|
|
2883
|
-
accountId: "old-account-123",
|
|
2884
|
-
accountName: "old-account-name",
|
|
2885
|
-
templateConfigs: {
|
|
2886
|
-
id: "same-template-123",
|
|
2887
|
-
name: "same_template_name",
|
|
2888
|
-
template: "same_template_content",
|
|
2889
|
-
varMapped: { customer: "John" },
|
|
2890
|
-
},
|
|
2891
|
-
},
|
|
2892
|
-
},
|
|
2893
|
-
};
|
|
2894
|
-
|
|
2895
|
-
const newData = {
|
|
2896
|
-
accountId: "new-account-123",
|
|
2897
|
-
accountName: "new-account-name",
|
|
2898
|
-
templateConfigs: {
|
|
2899
|
-
id: "same-template-123",
|
|
2900
|
-
name: "same_template_name",
|
|
2901
|
-
template: "same_template_content",
|
|
2902
|
-
varMapped: { customer: "John" },
|
|
2903
|
-
},
|
|
2904
|
-
};
|
|
2905
|
-
|
|
2906
|
-
const result = getTemplateDiffState("RCS", oldData, newData);
|
|
2907
|
-
|
|
2908
|
-
expect(result).toBe(true);
|
|
2909
|
-
});
|
|
2910
|
-
|
|
2911
|
-
it("should return false when RCS content is the same", () => {
|
|
2912
|
-
const oldData = {
|
|
2913
|
-
transformedMessageDetails: {
|
|
2914
|
-
rcsMessageContent: {
|
|
2915
|
-
accountId: "same-account",
|
|
2916
|
-
accountName: "same-account-name",
|
|
2917
|
-
templateConfigs: {
|
|
2918
|
-
id: "same-template-123",
|
|
2919
|
-
name: "same_template_name",
|
|
2920
|
-
template: "same_template_content",
|
|
2921
|
-
varMapped: { customer: "John" },
|
|
2922
|
-
},
|
|
2923
|
-
},
|
|
2924
|
-
},
|
|
2925
|
-
};
|
|
2926
|
-
|
|
2927
|
-
const newData = {
|
|
2928
|
-
accountId: "same-account",
|
|
2929
|
-
accountName: "same-account-name",
|
|
2930
|
-
templateConfigs: {
|
|
2931
|
-
id: "same-template-123",
|
|
2932
|
-
name: "same_template_name",
|
|
2933
|
-
template: "same_template_content",
|
|
2934
|
-
varMapped: { customer: "John" },
|
|
2935
|
-
},
|
|
2936
|
-
};
|
|
2937
|
-
|
|
2938
|
-
const result = getTemplateDiffState(RCS, oldData, newData);
|
|
2939
|
-
|
|
2940
|
-
expect(result).toBe(false);
|
|
2941
|
-
});
|
|
2942
|
-
|
|
2943
|
-
it("should handle missing transformedMessageDetails with default values", () => {
|
|
2944
|
-
const oldData = {
|
|
2945
|
-
// Missing transformedMessageDetails completely
|
|
2946
|
-
};
|
|
2947
|
-
|
|
2948
|
-
const newData = {
|
|
2949
|
-
accountId: "new-account",
|
|
2950
|
-
accountName: "new-account-name",
|
|
2951
|
-
templateConfigs: {
|
|
2952
|
-
id: "template-123",
|
|
2953
|
-
name: "template_name",
|
|
2954
|
-
},
|
|
2955
|
-
};
|
|
2956
|
-
|
|
2957
|
-
// This should trigger default value assignments in destructuring
|
|
2958
|
-
const result = getTemplateDiffState(RCS, oldData, newData);
|
|
2959
|
-
|
|
2960
|
-
// Should return true because oldData has no rcsMessageContent
|
|
2961
|
-
expect(result).toBe(true);
|
|
2962
|
-
});
|
|
2963
|
-
|
|
2964
|
-
it("should handle empty newData with default values", () => {
|
|
2965
|
-
const oldData = {
|
|
2966
|
-
transformedMessageDetails: {
|
|
2967
|
-
rcsMessageContent: {
|
|
2968
|
-
accountId: "old-account",
|
|
2969
|
-
accountName: "old-account-name",
|
|
2970
|
-
templateConfigs: {
|
|
2971
|
-
id: "template-123",
|
|
2972
|
-
name: "template_name",
|
|
2973
|
-
},
|
|
2974
|
-
},
|
|
2975
|
-
},
|
|
2976
|
-
};
|
|
2977
|
-
|
|
2978
|
-
const newData = null;
|
|
2979
|
-
|
|
2980
|
-
// This should trigger default value assignments in destructuring for newData
|
|
2981
|
-
const result = getTemplateDiffState(RCS, oldData, newData);
|
|
2982
|
-
|
|
2983
|
-
// Should return true because newData is null
|
|
2984
|
-
expect(result).toBe(true);
|
|
2985
|
-
});
|
|
2986
|
-
});
|
|
2987
2127
|
});
|
|
@@ -7,9 +7,6 @@ import {
|
|
|
7
7
|
WHATSAPP,
|
|
8
8
|
PUSH,
|
|
9
9
|
ZALO,
|
|
10
|
-
RCS,
|
|
11
|
-
LINE,
|
|
12
|
-
VIBER,
|
|
13
10
|
EMF,
|
|
14
11
|
VENENO,
|
|
15
12
|
TEXT,
|
|
@@ -57,12 +54,6 @@ export const transformChannelPayload = (data, options = {}) => {
|
|
|
57
54
|
return transformWhatsappPayload(data, options);
|
|
58
55
|
case ZALO:
|
|
59
56
|
return transformZaloPayload(data, options);
|
|
60
|
-
case RCS:
|
|
61
|
-
return transformRcsPayload(data, options);
|
|
62
|
-
case LINE:
|
|
63
|
-
return transformLinePayload(data, options);
|
|
64
|
-
case VIBER:
|
|
65
|
-
return transformViberPayload(data, options);
|
|
66
57
|
default:
|
|
67
58
|
return data; // Return unchanged for unsupported channels
|
|
68
59
|
}
|
|
@@ -240,83 +231,6 @@ const transformZaloPayload = (zaloData, options = {}) => {
|
|
|
240
231
|
return payload;
|
|
241
232
|
};
|
|
242
233
|
|
|
243
|
-
/**
|
|
244
|
-
* Transforms RCS data to the required payload format
|
|
245
|
-
* @param {Object} rcsData - Current RCS data
|
|
246
|
-
* @param {Object} options - Additional options (ouId, sourceEntityId, etc.)
|
|
247
|
-
* @returns {Object} - Transformed RCS payload
|
|
248
|
-
*/
|
|
249
|
-
// TODO: RCS is currently not supported by the CCS - BE. We need to make changes in future as per the BE changes.
|
|
250
|
-
const transformRcsPayload = (rcsData, options = {}) => {
|
|
251
|
-
const { loyaltyMetaData = {} } = options;
|
|
252
|
-
const { transformedMessageDetails = {} } = loyaltyMetaData;
|
|
253
|
-
const { rcsDeliverySettings = {} } = transformedMessageDetails || {};
|
|
254
|
-
|
|
255
|
-
// Get base payload structure
|
|
256
|
-
const payload = createBasePayload(RCS, loyaltyMetaData);
|
|
257
|
-
|
|
258
|
-
// Add RCS-specific properties
|
|
259
|
-
payload.centralCommsPayload.rcsMessageContent = {
|
|
260
|
-
channel: RCS,
|
|
261
|
-
messageBody: "",
|
|
262
|
-
accountId: rcsData?.accountId || "",
|
|
263
|
-
accountName: rcsData?.accountName || "",
|
|
264
|
-
...rcsData,
|
|
265
|
-
// Ensure templateConfigs is preserved (it might contain complex nested objects)
|
|
266
|
-
templateConfigs: rcsData?.templateConfigs || {},
|
|
267
|
-
};
|
|
268
|
-
payload.centralCommsPayload.rcsDeliverySettings = rcsDeliverySettings;
|
|
269
|
-
|
|
270
|
-
return payload;
|
|
271
|
-
};
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Transforms LINE data to the required payload format
|
|
275
|
-
* @param {Object} lineData - Current LINE data
|
|
276
|
-
* @param {Object} options - Additional options (ouId, sourceEntityId, etc.)
|
|
277
|
-
* @returns {Object} - Transformed LINE payload
|
|
278
|
-
*/
|
|
279
|
-
const transformLinePayload = (lineData, options = {}) => {
|
|
280
|
-
const { loyaltyMetaData = {} } = options;
|
|
281
|
-
const { transformedMessageDetails = {} } = loyaltyMetaData;
|
|
282
|
-
const { lineDeliverySettings = {} } = transformedMessageDetails || {};
|
|
283
|
-
|
|
284
|
-
// Get base payload structure
|
|
285
|
-
const payload = createBasePayload(LINE, loyaltyMetaData);
|
|
286
|
-
payload.centralCommsPayload.lineMessageContent = {
|
|
287
|
-
channel: LINE,
|
|
288
|
-
accountId: lineData?.accountId || 0,
|
|
289
|
-
accountDetails: lineData?.accountDetails || "",
|
|
290
|
-
messageBody: lineData?.messageBody || "",
|
|
291
|
-
...lineData,
|
|
292
|
-
};
|
|
293
|
-
payload.centralCommsPayload.lineDeliverySettings = lineDeliverySettings;
|
|
294
|
-
return payload;
|
|
295
|
-
};
|
|
296
|
-
|
|
297
|
-
/**
|
|
298
|
-
* Transforms VIBER data to the required payload format
|
|
299
|
-
* @param {Object} viberData - Current VIBER data
|
|
300
|
-
* @param {Object} options - Additional options (ouId, sourceEntityId, etc.)
|
|
301
|
-
* @returns {Object} - Transformed VIBER payload
|
|
302
|
-
*/
|
|
303
|
-
const transformViberPayload = (viberData, options = {}) => {
|
|
304
|
-
const { loyaltyMetaData = {} } = options;
|
|
305
|
-
const { transformedMessageDetails = {} } = loyaltyMetaData;
|
|
306
|
-
const { viberDeliverySettings = {} } = transformedMessageDetails || {};
|
|
307
|
-
// Get base payload structure
|
|
308
|
-
const payload = createBasePayload(VIBER, loyaltyMetaData);
|
|
309
|
-
payload.centralCommsPayload.viberMessageContent = {
|
|
310
|
-
channel: VIBER,
|
|
311
|
-
accountId: viberData?.accountId || 0,
|
|
312
|
-
accountDetails: viberData?.accountDetails || "",
|
|
313
|
-
messageBody: viberData?.messageBody || "",
|
|
314
|
-
...viberData,
|
|
315
|
-
};
|
|
316
|
-
payload.centralCommsPayload.viberDeliverySettings = viberDeliverySettings;
|
|
317
|
-
return payload;
|
|
318
|
-
};
|
|
319
|
-
|
|
320
234
|
// Checks if the template has changed
|
|
321
235
|
export const getTemplateDiffState = (channel, oldData, newData) => {
|
|
322
236
|
switch (channel.toUpperCase()) {
|
|
@@ -331,13 +245,6 @@ export const getTemplateDiffState = (channel, oldData, newData) => {
|
|
|
331
245
|
return checkWhatsappDiff(oldData, newData);
|
|
332
246
|
case ZALO:
|
|
333
247
|
return checkZaloDiff(oldData, newData);
|
|
334
|
-
case LINE:
|
|
335
|
-
return checkLineDiff(oldData, newData);
|
|
336
|
-
case VIBER:
|
|
337
|
-
return checkViberDiff(oldData, newData);
|
|
338
|
-
// TODO: RCS is currently not supported by the CCS - BE. We need to make changes in future as per the BE changes.
|
|
339
|
-
case RCS:
|
|
340
|
-
return checkRcsDiff(oldData, newData);
|
|
341
248
|
default:
|
|
342
249
|
return false;
|
|
343
250
|
}
|
|
@@ -511,78 +418,3 @@ const checkZaloDiff = (oldData, newData) => {
|
|
|
511
418
|
// Use deep comparison for template configs
|
|
512
419
|
return !isEqual(oldTemplateConfigs, newTemplateConfigs);
|
|
513
420
|
};
|
|
514
|
-
|
|
515
|
-
/**
|
|
516
|
-
* Checks differences between old and new RCS data
|
|
517
|
-
* @param {Object} oldData - Previous RCS template data
|
|
518
|
-
* @param {Object} newData - Updated RCS template data
|
|
519
|
-
* @returns {Boolean} - Whether the template has changed
|
|
520
|
-
*/
|
|
521
|
-
// TODO: RCS is currently not supported by the CCS - BE. We need to make changes in future as per the BE changes.
|
|
522
|
-
const checkRcsDiff = (oldData, newData) => {
|
|
523
|
-
// Extract old RCS content
|
|
524
|
-
const { templateConfigs: oldTemplateConfigs = {}, accountId: oldAccountId = "", accountName: oldAccountName = "" } =
|
|
525
|
-
oldData?.transformedMessageDetails?.rcsMessageContent || {};
|
|
526
|
-
|
|
527
|
-
// Extract new RCS content
|
|
528
|
-
const { templateConfigs: newTemplateConfigs = {}, accountId: newAccountId = "", accountName: newAccountName = "" } = newData || {};
|
|
529
|
-
|
|
530
|
-
// Compare simple properties for quick rejection
|
|
531
|
-
if (oldAccountId !== newAccountId) return true;
|
|
532
|
-
if (oldAccountName !== newAccountName) return true;
|
|
533
|
-
|
|
534
|
-
// If template configs have different structures, they've changed
|
|
535
|
-
if (
|
|
536
|
-
Object.keys(newTemplateConfigs)?.length
|
|
537
|
-
!== Object.keys(oldTemplateConfigs)?.length
|
|
538
|
-
) {
|
|
539
|
-
return true;
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
// Use deep comparison for template configs
|
|
543
|
-
return !isEqual(oldTemplateConfigs, newTemplateConfigs);
|
|
544
|
-
};
|
|
545
|
-
|
|
546
|
-
/**
|
|
547
|
-
* Checks differences between old and new LINE data
|
|
548
|
-
* @param {Object} oldData - Previous LINE template data
|
|
549
|
-
* @param {Object} newData - Updated LINE template data
|
|
550
|
-
* @returns {Boolean} - Whether the template has changed
|
|
551
|
-
*/
|
|
552
|
-
const checkLineDiff = (oldData, newData) => {
|
|
553
|
-
// Extract old LINE content
|
|
554
|
-
const { messageBody: oldMessageBody = "", accountId: oldAccountId = "", accountDetails: oldAccountDetails = "" } =
|
|
555
|
-
oldData?.transformedMessageDetails?.lineMessageContent || {};
|
|
556
|
-
|
|
557
|
-
// Extract new LINE content
|
|
558
|
-
const { messageBody: newMessageBody = "", accountId: newAccountId = "", accountDetails: newAccountDetails = "" } = newData || {};
|
|
559
|
-
|
|
560
|
-
// Compare simple properties for quick rejection
|
|
561
|
-
if (oldMessageBody !== newMessageBody) return true;
|
|
562
|
-
if (oldAccountId !== newAccountId) return true;
|
|
563
|
-
if (oldAccountDetails !== newAccountDetails) return true;
|
|
564
|
-
|
|
565
|
-
return false;
|
|
566
|
-
};
|
|
567
|
-
|
|
568
|
-
/**
|
|
569
|
-
* Checks differences between old and new VIBER data
|
|
570
|
-
* @param {Object} oldData - Previous VIBER template data
|
|
571
|
-
* @param {Object} newData - Updated VIBER template data
|
|
572
|
-
* @returns {Boolean} - Whether the template has changed
|
|
573
|
-
*/
|
|
574
|
-
const checkViberDiff = (oldData, newData) => {
|
|
575
|
-
// Extract old VIBER content
|
|
576
|
-
const { messageBody: oldMessageBody = "", accountId: oldAccountId = "", accountDetails: oldAccountDetails = "" } =
|
|
577
|
-
oldData?.transformedMessageDetails?.viberMessageContent || {};
|
|
578
|
-
|
|
579
|
-
// Extract new VIBER content
|
|
580
|
-
const { messageBody: newMessageBody = "", accountId: newAccountId = "", accountDetails: newAccountDetails = "" } = newData || {};
|
|
581
|
-
|
|
582
|
-
// Compare simple properties for quick rejection
|
|
583
|
-
if (oldMessageBody !== newMessageBody) return true;
|
|
584
|
-
if (oldAccountId !== newAccountId) return true;
|
|
585
|
-
if (oldAccountDetails !== newAccountDetails) return true;
|
|
586
|
-
|
|
587
|
-
return false;
|
|
588
|
-
};
|
|
@@ -189,12 +189,14 @@ const TestAndPreviewSlidebox = (props) => {
|
|
|
189
189
|
const groupsNode = {
|
|
190
190
|
title: 'Groups',
|
|
191
191
|
value: 'groups-node',
|
|
192
|
+
selectable: false,
|
|
192
193
|
children: testGroups?.map((group) => ({ title: group?.groupName, value: group?.groupId })),
|
|
193
194
|
};
|
|
194
195
|
|
|
195
196
|
const customersNode = {
|
|
196
197
|
title: 'Individuals',
|
|
197
198
|
value: 'customers-node',
|
|
199
|
+
selectable: false,
|
|
198
200
|
children: testCustomers?.map((customer) => ({ title: customer.name, value: customer?.userId })),
|
|
199
201
|
};
|
|
200
202
|
|