UNPKG

2.02 kBJavaScriptView Raw
1const _ = require('lodash');
2
3module.exports = function(config) {
4 const util = {};
5
6 util.buildUrlRedirect = function(conversationId, url, type, companyId) {
7 let baseUrl = '';
8 if (config.URL_FOR_BUILD_LINK) {
9 baseUrl = config.URL_FOR_BUILD_LINK;
10 } else {
11 baseUrl = config.INFOCHAT_DATA_SERVER;
12 }
13
14 const pathWithCompany = companyId ? `/${companyId}` : '';
15
16 return (
17 baseUrl + '/redirect/' + conversationId + pathWithCompany + '?url=' + url + '&type=' + type
18 );
19 };
20
21 util.defineLanguage = function(language) {
22 if (language) {
23 language = language.toLowerCase();
24
25 if (language.indexOf('pt') >= 0) {
26 language = 'pt-br';
27 } else if (language.indexOf('es') >= 0) {
28 language = 'es';
29 } else {
30 language = 'en';
31 }
32 } else {
33 language = 'en';
34 }
35
36 return language;
37 };
38
39 util.resolveLanguage = function(paramLanguage, languages, attrValueLanguage = 'formatIso') {
40 if (!paramLanguage) {
41 return 'en-us';
42 }
43
44 let language = _.find(languages, _.matchesProperty('formatIso', paramLanguage));
45 if (language) {
46 return language[attrValueLanguage];
47 }
48
49 language = _.chain(languages)
50 .filter(_.matchesProperty('parentLanguage', paramLanguage.substring(0, 2)))
51 .sortBy(l => !l.standard)
52 .head()
53 .value();
54
55 if (language) {
56 return language[attrValueLanguage];
57 }
58
59 return 'en-us';
60 };
61
62 util.resolveLanguageGoogle = function(
63 paramLanguage,
64 languages,
65 attrValueLanguage = 'formatGoogle',
66 ) {
67 if (!paramLanguage) {
68 return 'en';
69 }
70
71 let language = _.find(languages, _.matchesProperty('formatIso', paramLanguage));
72 if (language) {
73 return language[attrValueLanguage];
74 }
75
76 language = _.find(
77 languages,
78 _.matchesProperty('parentLanguage', paramLanguage.substring(0, 2)),
79 );
80 if (language) {
81 return language[attrValueLanguage];
82 }
83
84 return 'en';
85 };
86
87 return util;
88};