@@ -17,9 +17,26 @@ class AIHandler {
1717 private app : QuickRepliesApp ,
1818 private http : IHttp ,
1919 private userPreference : IPreference ,
20+ private user : IUser ,
2021 ) { }
2122 private language = this . userPreference . language ;
2223
24+ private getConfigError ( provider : string ) : string {
25+ if (
26+ this . userPreference . AIusagePreference ===
27+ AIusagePreferenceEnum . Personal
28+ ) {
29+ return t ( 'AI_Not_Configured_Personal' , this . language , {
30+ provider,
31+ } ) ;
32+ }
33+ return this . user . roles . includes ( 'admin' )
34+ ? t ( 'AI_Not_Configured_Admin_Self' , this . language , { provider } )
35+ : t ( 'AI_Not_Configured_Workspace_User' , this . language , {
36+ provider,
37+ } ) ;
38+ }
39+
2340 public async handleResponse (
2441 user : IUser ,
2542 message : string ,
@@ -52,11 +69,7 @@ class AIHandler {
5269 return this . handleGemini ( user , message , prompt ) ;
5370
5471 default :
55- const errorMsg =
56- this . userPreference . AIusagePreference ===
57- AIusagePreferenceEnum . Personal
58- ? t ( 'AI_Not_Configured_Personal' , this . language )
59- : t ( 'AI_Not_Configured_Admin' , this . language ) ;
72+ const errorMsg = this . getConfigError ( 'AI provider' ) ;
6073
6174 this . app . getLogger ( ) . log ( errorMsg ) ;
6275 return errorMsg ;
@@ -77,20 +90,7 @@ class AIHandler {
7790
7891 if ( ! url ) {
7992 this . app . getLogger ( ) . log ( 'Self Hosted Model address not set.' ) ;
80- if (
81- this . userPreference . AIusagePreference ===
82- AIusagePreferenceEnum . Personal
83- ) {
84- return t (
85- 'AI_Self_Hosted_Model_Not_Configured' ,
86- this . language ,
87- ) ;
88- } else {
89- return t (
90- 'AI_Workspace_Model_Not_Configured' ,
91- this . language ,
92- ) ;
93- }
93+ return this . getConfigError ( 'Self Hosted Model URL' ) ;
9494 }
9595
9696 const requestBody = {
@@ -151,13 +151,7 @@ class AIHandler {
151151
152152 if ( ! openaikey || ! openaimodel ) {
153153 this . app . getLogger ( ) . log ( 'OpenAI settings not set properly.' ) ;
154- const errorMsg =
155- this . userPreference . AIusagePreference ===
156- AIusagePreferenceEnum . Personal
157- ? t ( 'AI_OpenAI_Model_Not_Configured' , this . language )
158- : t ( 'AI_Not_Configured_Admin' , this . language ) ;
159-
160- return errorMsg ;
154+ return this . getConfigError ( 'OpenAI API key or model' ) ;
161155 }
162156
163157 const response : IHttpResponse = await this . http . post (
@@ -228,14 +222,7 @@ class AIHandler {
228222
229223 if ( ! geminiAPIkey ) {
230224 this . app . getLogger ( ) . log ( 'Gemini API key not set Properly' ) ;
231-
232- const errorMsg =
233- this . userPreference . AIusagePreference ===
234- AIusagePreferenceEnum . Personal
235- ? t ( 'AI_Gemini_Model_Not_Configured' , this . language )
236- : t ( 'AI_Not_Configured_Admin' , this . language ) ;
237-
238- return errorMsg ;
225+ return this . getConfigError ( 'Gemini API key' ) ;
239226 }
240227
241228 const response : IHttpResponse = await this . http . post (
0 commit comments