@@ -61,8 +61,6 @@ const getConnectionModes = (destination) => {
6161 mobile : false ,
6262 server : false
6363 } ,
64- summary : "" ,
65- cmode_type :""
6664 }
6765 destination . components . forEach ( component => {
6866 switch ( component . type ) {
@@ -99,97 +97,6 @@ const getConnectionModes = (destination) => {
9997
10098 }
10199 } )
102- // summarize connection modes in plain english.
103- // start with no-cloud
104- if ( connectionModes . cloud . web == false && connectionModes . cloud . mobile == false && connectionModes . cloud . server == false ) {
105- // first check if no info at all available - these need backfill
106- if ( connectionModes . device . web == false && connectionModes . device . mobile == false ) {
107- connectionModes . summary = "No connection mode information available."
108- connectionModes . case = "0"
109- connectionModes . cmode_type = "none"
110- }
111- // handle has-device-modes: three cases
112- else if ( connectionModes . device . web == true || connectionModes . device . mobile == true ) {
113- connectionModes . cmode_type = "device-only"
114- if ( connectionModes . device . web == true && connectionModes . device . mobile == true ) {
115- connectionModes . summary = "accepts device-mode data from both Analytics.js and mobile sources. It does not accept data in cloud-mode."
116- connectionModes . case = "1"
117- }
118- if ( connectionModes . device . web == true && connectionModes . device . mobile == false ) {
119- connectionModes . summary = "accepts device-mode data only from Analytics.js."
120- connectionModes . case = "2"
121- }
122- if ( connectionModes . device . web == false && connectionModes . device . mobile == true ) {
123- connectionModes . summary = "accepts device-mode data only from a mobile source."
124- connectionModes . case = "3"
125- }
126- }
127-
128- }
129- //next check if all are true.
130- else if ( connectionModes . cloud . web == true && connectionModes . cloud . mobile == true && connectionModes . cloud . server == true && connectionModes . device . web == true && connectionModes . device . mobile == true ) {
131- connectionModes . cmode_type = "all"
132- connectionModes . summary = "accepts cloud-mode data from all Segment source types. It can accept device-mode data from both web and mobile sources."
133- connectionModes . case = "4"
134- }
135-
136- //next handle all cloud-only (no-device-mode) cases
137- else if ( ( connectionModes . device . web == false && connectionModes . device . mobile == false ) && ( connectionModes . cloud . web == true || connectionModes . cloud . mobile == true || connectionModes . cloud . server == true ) ) {
138- connectionModes . cmode_type = "cloud-only"
139- // accepts all cloud-mode
140- if ( connectionModes . cloud . web == true && connectionModes . cloud . mobile == true && connectionModes . cloud . server == true ) {
141- connectionModes . summary = "accepts cloud-mode data from all Segment source types. It does not offer device-mode connections."
142- connectionModes . case = "5"
143- }
144- //edge-case-y: only mobile and server cloud
145- else if ( connectionModes . cloud . web == false && connectionModes . cloud . mobile == true && connectionModes . cloud . server == true ) {
146- connectionModes . summary = "accepts data from any Segment mobile or server source in cloud mode. It does not accept data from a web source, and does not offer device-mode connections."
147- connectionModes . case = "6"
148- }
149- //edge-case-y: web and mobile cloud, no server.
150- else if ( connectionModes . cloud . web == true && connectionModes . cloud . mobile == true && connectionModes . cloud . server == false ) {
151- connectionModes . summary = "accepts only cloud-mode data from web and mobile sources."
152- connectionModes . case = "7"
153- }
154- //edge-case-y: mobile cloud only.
155- else if ( connectionModes . cloud . web == false && connectionModes . cloud . mobile == true && connectionModes . cloud . server == false ) {
156- connectionModes . summary = "accepts only cloud-mode data from mobile sources."
157- connectionModes . case = "8"
158- }
159- }
160-
161- //handle mixed-case - in the dossier, use the case, or type: "mixed" to invoke a check for what type of device mode
162- else if ( ( connectionModes . cloud . web == true || connectionModes . cloud . mobile == true || connectionModes . cloud . server == true ) && ( connectionModes . device . mobile == true || connectionModes . device . web == true ) ) {
163- // remove "both" as that would be covered under ALL
164- if ( ! ( connectionModes . device . mobile == true && connectionModes . device . web == true ) ) {
165- connectionModes . cmode_type = "mixed"
166- // all cloud-mode plus one device
167- if ( ( connectionModes . cloud . web == true && connectionModes . cloud . mobile == true && connectionModes . cloud . server == true ) && ( connectionModes . device . mobile == true || connectionModes . device . web == true ) ) {
168- if ( connectionModes . device . mobile == true || connectionModes . device . web == false ) {
169- connectionModes . summary = "accepts data in cloud-mode from all source types, and can accept data in device-mode from mobile sources."
170- }
171- else if ( connectionModes . device . mobile == false || connectionModes . device . web == true ) {
172- connectionModes . summary = "accepts data in cloud-mode from all source types, and can accept data in device-mode from Analytics.js sources."
173- }
174- connectionModes . case = "9"
175- }
176- // edge-case-y: cloud web and mobile, no server, one device
177- else if ( ( connectionModes . cloud . web == true && connectionModes . cloud . mobile == true && connectionModes . cloud . server == false ) && ( connectionModes . device . mobile == true || connectionModes . device . web == true ) ) {
178- if ( connectionModes . device . mobile == true || connectionModes . device . web == false ) {
179- connectionModes . summary = "accepts data in cloud-mode from web and mobile sources, and can accept data in device-mode from mobile sources."
180- }
181- else if ( connectionModes . device . mobile == false || connectionModes . device . web == true ) {
182- connectionModes . summary = "accepts data in cloud-mode from web and mobile sources, and can accept data in device-mode from Analytics.js sources."
183- }
184- connectionModes . case = "10"
185- }
186- // edge-case-y: cloud mobile and server, device mobile, no web
187- else if ( connectionModes . cloud . web == false && connectionModes . cloud . mobile == true && connectionModes . cloud . server == true && connectionModes . device . mobile == true && connectionModes . device . web == false ) {
188- connectionModes . summary = "accepts data in cloud-mode from mobile and server sources, and can accept data in device-mode from mobile sources."
189- connectionModes . case = "11"
190- }
191- }
192- }
193100 return connectionModes
194101}
195102
0 commit comments