package main import ( "github.com/abhinavxd/libredesk/internal/envelope" "github.com/zerodha/fastglue" ) type aiCompletionReq struct { PromptKey string `json:"prompt_key"` Content string `json:"content"` } type providerUpdateReq struct { Provider string `json:"provider"` APIKey string `json:"api_key"` } // handleAICompletion handles AI completion requests func handleAICompletion(r *fastglue.Request) error { var ( app = r.Context.(*App) req = aiCompletionReq{} ) if err := r.Decode(&req, "json"); err != nil { return sendErrorEnvelope(r, envelope.NewError(envelope.InputError, app.i18n.Ts("globals.messages.errorParsing", "name", "{globals.terms.request}"), nil)) } resp, err := app.ai.Completion(req.PromptKey, req.Content) if err != nil { return sendErrorEnvelope(r, err) } return r.SendEnvelope(resp) } // handleGetAIPrompts returns AI prompts func handleGetAIPrompts(r *fastglue.Request) error { var ( app = r.Context.(*App) ) resp, err := app.ai.GetPrompts() if err != nil { return sendErrorEnvelope(r, err) } return r.SendEnvelope(resp) } // handleUpdateAIProvider updates the AI provider func handleUpdateAIProvider(r *fastglue.Request) error { var ( app = r.Context.(*App) req providerUpdateReq ) if err := r.Decode(&req, "json"); err != nil { return sendErrorEnvelope(r, envelope.NewError(envelope.InputError, app.i18n.Ts("globals.messages.errorParsing", "name", "{globals.terms.request}"), nil)) } if err := app.ai.UpdateProvider(req.Provider, req.APIKey); err != nil { return sendErrorEnvelope(r, err) } return r.SendEnvelope("Provider updated successfully") }