apiGetAccountModels 获取账户可用模型
(w http.ResponseWriter, r *http.Request, id string)
| 3381 | oldestExpiry = expiry |
| 3382 | } |
| 3383 | } |
| 3384 | delete(h.microsoftCanceled, oldestID) |
| 3385 | } |
| 3386 | h.microsoftCanceled[sessionID] = now.Add(microsoftCanceledSessionTTL) |
| 3387 | if discovery := h.microsoftDiscoveries[sessionID]; discovery != nil { |
| 3388 | discovery.cancel() |
| 3389 | } |
| 3390 | h.microsoftFlowMu.Unlock() |
| 3391 | } |
| 3392 | |
| 3393 | func (h *Handler) beginMicrosoftProfileDiscovery( |
| 3394 | parent context.Context, |
| 3395 | sessionID string, |
| 3396 | ) (context.Context, *microsoftProfileDiscovery, bool) { |
| 3397 | sessionID = strings.TrimSpace(sessionID) |
| 3398 | h.microsoftFlowMu.Lock() |
| 3399 | defer h.microsoftFlowMu.Unlock() |
| 3400 | if h.microsoftSessionCanceledLocked(sessionID, time.Now()) { |
| 3401 | return nil, nil, false |
| 3402 | } |
| 3403 | if h.microsoftDiscoveries == nil { |
| 3404 | h.microsoftDiscoveries = make(map[string]*microsoftProfileDiscovery) |
| 3405 | } |
| 3406 | if h.microsoftDiscoveries[sessionID] != nil { |
| 3407 | return nil, nil, false |
| 3408 | } |
| 3409 | ctx, cancel := context.WithTimeout(parent, microsoftProfileDiscoveryTimeout) |
| 3410 | discovery := µsoftProfileDiscovery{cancel: cancel} |
| 3411 | h.microsoftDiscoveries[sessionID] = discovery |
| 3412 | return ctx, discovery, true |
| 3413 | } |
| 3414 | |
| 3415 | func (h *Handler) endMicrosoftProfileDiscovery(sessionID string, expected *microsoftProfileDiscovery) { |
| 3416 | expected.cancel() |
| 3417 | h.microsoftFlowMu.Lock() |
| 3418 | if h.microsoftDiscoveries[strings.TrimSpace(sessionID)] == expected { |
| 3419 | delete(h.microsoftDiscoveries, strings.TrimSpace(sessionID)) |
| 3420 | } |
| 3421 | h.microsoftFlowMu.Unlock() |
| 3422 | } |
| 3423 | |
| 3424 | func (h *Handler) microsoftSessionCanceled(sessionID string) bool { |
no test coverage detected