(ctx context.Context, eid, userID int64, role int64, keyID int64, libraryID *int64)
| 96 | } |
| 97 | |
| 98 | func (s *APIKeyService) DeleteAPIKey(ctx context.Context, eid, userID int64, role int64, keyID int64, libraryID *int64) error { |
| 99 | apiKey, err := model.GetAPIKeyByID(keyID) |
| 100 | if err != nil { |
| 101 | return err |
| 102 | } |
| 103 | if apiKey == nil { |
| 104 | return errors.New("API密钥不存在") |
| 105 | } |
| 106 | |
| 107 | if libraryID != nil { |
| 108 | if apiKey.LibraryID == nil { |
| 109 | return errors.New("该API密钥未关联任何知识库,无法通过知识库路径访问") |
| 110 | } |
| 111 | if *apiKey.LibraryID != *libraryID { |
| 112 | return errors.New("路径中的知识库ID与API密钥关联的知识库ID不匹配") |
| 113 | } |
| 114 | } |
| 115 | |
| 116 | if err := s.ensureAPIKeyManagePermission(eid, userID, role, apiKey); err != nil { |
| 117 | return err |
| 118 | } |
| 119 | |
| 120 | return model.DeleteAPIKey(keyID) |
| 121 | } |
| 122 | |
| 123 | func (s *APIKeyService) SetAPIKeyStatus(ctx context.Context, eid, userID int64, role int64, keyID int64, libraryID *int64, enabled bool) error { |
| 124 | apiKey, err := model.GetAPIKeyByID(keyID) |
no test coverage detected