@@ -35,19 +35,16 @@ type serviceInfo struct {
3535 URL string `json:"url"`
3636}
3737
38- // appRegisterRequest represents the request body for app registration
3938type appRegisterRequest struct {
4039 Name string `json:"name"`
4140 Description string `json:"description"`
4241 UID string `json:"uid,omitempty"`
4342}
4443
45- // appRegisterResponse represents the response from app registration
4644type appRegisterResponse struct {
4745 Token string `json:"token"`
4846}
4947
50- // uniTokenDetectionResponse represents the response for service detection
5148type uniTokenDetectionResponse struct {
5249 UniToken bool `json:"__uni_token"`
5350}
@@ -188,18 +185,18 @@ func downloadService(execPath string) error {
188185}
189186
190187// RequestUniTokenOpenAI requests user for OpenAI token via UniToken service
191- // Returns the baseURL and apiKey, or nil if the user does not grant permission
192- func RequestUniTokenOpenAI (options UniTokenOptions ) (* UniTokenResult , error ) {
188+ // Returns the baseURL and apiKey. apiKey is empty if the user does not grant permission
189+ func RequestUniTokenOpenAI (options UniTokenOptions ) (UniTokenResult , error ) {
193190 rootPath , err := setupServiceRootPath ()
194191 if err != nil {
195- return nil , fmt .Errorf ("failed to setup service root path: %w" , err )
192+ return UniTokenResult {} , fmt .Errorf ("failed to setup service root path: %w" , err )
196193 }
197194 serverURL , err := detectRunningURLFromFile (rootPath )
198195
199196 if err != nil || serverURL == "" {
200197 serverURL , err = startService (rootPath )
201198 if err != nil {
202- return nil , fmt .Errorf ("failed to start service: %w" , err )
199+ return UniTokenResult {} , fmt .Errorf ("failed to start service: %w" , err )
203200 }
204201 }
205202
@@ -211,7 +208,7 @@ func RequestUniTokenOpenAI(options UniTokenOptions) (*UniTokenResult, error) {
211208
212209 jsonData , err := json .Marshal (requestBody )
213210 if err != nil {
214- return nil , fmt .Errorf ("failed to marshal request: %w" , err )
211+ return UniTokenResult {} , fmt .Errorf ("failed to marshal request: %w" , err )
215212 }
216213
217214 client := & http.Client {Timeout : 30 * time .Second }
@@ -221,28 +218,28 @@ func RequestUniTokenOpenAI(options UniTokenOptions) (*UniTokenResult, error) {
221218 bytes .NewBuffer (jsonData ),
222219 )
223220 if err != nil {
224- return nil , fmt .Errorf ("registration request failed: %w" , err )
221+ return UniTokenResult {} , fmt .Errorf ("registration request failed: %w" , err )
225222 }
226223 defer resp .Body .Close ()
227224
228225 if resp .StatusCode == http .StatusForbidden {
229- return & UniTokenResult {
226+ return UniTokenResult {
230227 BaseURL : fmt .Sprintf ("%sopenai/" , serverURL ),
231228 APIKey : "" ,
232229 }, nil // User denied permission
233230 }
234231
235232 if resp .StatusCode != http .StatusOK {
236233 body , _ := io .ReadAll (resp .Body )
237- return nil , fmt .Errorf ("registration failed: HTTP %d - %s" , resp .StatusCode , string (body ))
234+ return UniTokenResult {} , fmt .Errorf ("registration failed: HTTP %d - %s" , resp .StatusCode , string (body ))
238235 }
239236
240237 var registerResp appRegisterResponse
241238 if err := json .NewDecoder (resp .Body ).Decode (& registerResp ); err != nil {
242- return nil , fmt .Errorf ("failed to decode response: %w" , err )
239+ return UniTokenResult {} , fmt .Errorf ("failed to decode response: %w" , err )
243240 }
244241
245- return & UniTokenResult {
242+ return UniTokenResult {
246243 BaseURL : fmt .Sprintf ("%sopenai/" , serverURL ),
247244 APIKey : registerResp .Token ,
248245 }, nil
0 commit comments