@@ -83,33 +83,34 @@ export interface CloseCallRequest {
8383 note ?: string ;
8484}
8585
86- export const createCall = async ( callData : CreateCallRequest ) => {
87- let dispatchList = '' ;
88-
89- if ( callData . dispatchEveryone ) {
90- dispatchList = '0' ;
91- } else {
92- const dispatchEntries : string [ ] = [ ] ;
93-
94- if ( callData . dispatchUsers ) {
95- //dispatchEntries.push(...callData.dispatchUsers.map((user) => `U:${user}`));
96- dispatchEntries . push ( ...callData . dispatchUsers ) ;
97- }
98- if ( callData . dispatchGroups ) {
99- //dispatchEntries.push(...callData.dispatchGroups.map((group) => `G:${group}`));
100- dispatchEntries . push ( ...callData . dispatchGroups ) ;
101- }
102- if ( callData . dispatchRoles ) {
103- //dispatchEntries.push(...callData.dispatchRoles.map((role) => `R:${role}`));
104- dispatchEntries . push ( ...callData . dispatchRoles ) ;
105- }
106- if ( callData . dispatchUnits ) {
107- //dispatchEntries.push(...callData.dispatchUnits.map((unit) => `U:${unit}`));
108- dispatchEntries . push ( ...callData . dispatchUnits ) ;
109- }
110-
111- dispatchList = dispatchEntries . join ( '|' ) ;
86+ /**
87+ * Helper function to build the dispatch list string from dispatch data
88+ */
89+ const buildDispatchList = ( data : { dispatchEveryone ?: boolean ; dispatchUsers ?: string [ ] ; dispatchGroups ?: string [ ] ; dispatchRoles ?: string [ ] ; dispatchUnits ?: string [ ] } ) : string => {
90+ if ( data . dispatchEveryone ) {
91+ return '0' ;
92+ }
93+
94+ const dispatchEntries : string [ ] = [ ] ;
95+
96+ if ( data . dispatchUsers ) {
97+ dispatchEntries . push ( ...data . dispatchUsers ) ;
98+ }
99+ if ( data . dispatchGroups ) {
100+ dispatchEntries . push ( ...data . dispatchGroups ) ;
112101 }
102+ if ( data . dispatchRoles ) {
103+ dispatchEntries . push ( ...data . dispatchRoles ) ;
104+ }
105+ if ( data . dispatchUnits ) {
106+ dispatchEntries . push ( ...data . dispatchUnits ) ;
107+ }
108+
109+ return dispatchEntries . join ( '|' ) ;
110+ } ;
111+
112+ export const createCall = async ( callData : CreateCallRequest ) => {
113+ const dispatchList = buildDispatchList ( callData ) ;
113114
114115 const data = {
115116 Name : callData . name ,
@@ -127,45 +128,20 @@ export const createCall = async (callData: CreateCallRequest) => {
127128 } ;
128129
129130 const response = await createCallApi . post < SaveCallResult > ( data ) ;
130-
131+
131132 // Invalidate cache after successful mutation
132133 try {
133134 cacheManager . remove ( '/Calls/GetActiveCalls' ) ;
134135 } catch ( error ) {
135136 // Silently handle cache removal errors
136137 console . warn ( 'Failed to invalidate calls cache:' , error ) ;
137138 }
138-
139+
139140 return response . data ;
140141} ;
141142
142143export const updateCall = async ( callData : UpdateCallRequest ) => {
143- let dispatchList = '' ;
144-
145- if ( callData . dispatchEveryone ) {
146- dispatchList = '0' ;
147- } else {
148- const dispatchEntries : string [ ] = [ ] ;
149-
150- if ( callData . dispatchUsers ) {
151- //dispatchEntries.push(...callData.dispatchUsers.map((user) => `U:${user}`));
152- dispatchEntries . push ( ...callData . dispatchUsers ) ;
153- }
154- if ( callData . dispatchGroups ) {
155- //dispatchEntries.push(...callData.dispatchGroups.map((group) => `G:${group}`));
156- dispatchEntries . push ( ...callData . dispatchGroups ) ;
157- }
158- if ( callData . dispatchRoles ) {
159- //dispatchEntries.push(...callData.dispatchRoles.map((role) => `R:${role}`));
160- dispatchEntries . push ( ...callData . dispatchRoles ) ;
161- }
162- if ( callData . dispatchUnits ) {
163- //dispatchEntries.push(...callData.dispatchUnits.map((unit) => `U:${unit}`));
164- dispatchEntries . push ( ...callData . dispatchUnits ) ;
165- }
166-
167- dispatchList = dispatchEntries . join ( '|' ) ;
168- }
144+ const dispatchList = buildDispatchList ( callData ) ;
169145
170146 const data = {
171147 CallId : callData . callId ,
@@ -184,15 +160,15 @@ export const updateCall = async (callData: UpdateCallRequest) => {
184160 } ;
185161
186162 const response = await updateCallApi . post < SaveCallResult > ( data ) ;
187-
163+
188164 // Invalidate cache after successful mutation
189165 try {
190166 cacheManager . remove ( '/Calls/GetActiveCalls' ) ;
191167 } catch ( error ) {
192168 // Silently handle cache removal errors
193169 console . warn ( 'Failed to invalidate calls cache:' , error ) ;
194170 }
195-
171+
196172 return response . data ;
197173} ;
198174
@@ -204,14 +180,14 @@ export const closeCall = async (callData: CloseCallRequest) => {
204180 } ;
205181
206182 const response = await closeCallApi . put < SaveCallResult > ( data ) ;
207-
183+
208184 // Invalidate cache after successful mutation
209185 try {
210186 cacheManager . remove ( '/Calls/GetActiveCalls' ) ;
211187 } catch ( error ) {
212188 // Silently handle cache removal errors
213189 console . warn ( 'Failed to invalidate calls cache:' , error ) ;
214190 }
215-
191+
216192 return response . data ;
217193} ;
0 commit comments