feat(plugins): add timezone conversion and permission i18n hooks#143
Merged
feat(plugins): add timezone conversion and permission i18n hooks#143
Conversation
- Implemented a timezone conversion plugin for automatic timezone adjustments in query results. - Added a permission i18n hook to translate Permission.Name fields based on user language preferences. - Enhanced the DatabaseManagerFactory to initialize these plugins during manager creation. - Updated the email service to remove unnecessary i18n dependency. - Refactored error handling to improve response structure and avoid circular imports. - Introduced utility functions for context management, including user ID and language retrieval from Redis. - Removed the response package and replaced its functionality with direct JSON responses in error handling. - Added tests for context utility functions to ensure correct user ID retrieval.
|
| Component | Coverage | Status |
|---|---|---|
| API Service | 14.5% | |
| Websoft9 Agent | 14.3% | |
| Average Coverage | 14.4% |
Threshold: 80%
Detailed Coverage Information
API Service:
api-service/cmd/server/main.go:58: main 0.0%
api-service/cmd/server/main.go:126: initAuthConfig 0.0%
api-service/cmd/server/main.go:133: initI18n 0.0%
api-service/cmd/server/main.go:140: initCrypto 0.0%
api-service/cmd/server/main.go:149: initDatabaseWrapper 0.0%
api-service/cmd/server/main.go:209: initServices 0.0%
api-service/cmd/server/main.go:234: startServer 0.0%
api-service/cmd/server/main.go:356: initRepositories 0.0%
api-service/cmd/server/main.go:390: initBusinessServices 0.0%
api-service/cmd/server/main.go:428: initControllers 0.0%
api-service/cmd/server/main.go:477: shutdownServices 0.0%
api-service/docs/docs.go:5428: init 0.0%
api-service/internal/config/auth.go:157: NewAuthConfigManager 0.0%
api-service/internal/config/auth.go:171: loadConfig 0.0%
api-service/internal/config/auth.go:210: setDefaults 0.0%
api-service/internal/config/auth.go:256: createDefaultConfig 0.0%
api-service/internal/config/auth.go:272: processEnvironmentVariables 0.0%
api-service/internal/config/auth.go:288: expandEnvironmentVariables 0.0%
api-service/internal/config/auth.go:293: GetConfig 0.0%
api-service/internal/config/auth.go:298: UpdateConfig 0.0%
api-service/internal/config/auth.go:319: validateConfig 0.0%
api-service/internal/config/auth.go:355: updateViperConfig 0.0%
api-service/internal/config/auth.go:375: ReloadConfig 0.0%
api-service/internal/config/auth.go:380: GetOAuth2Provider 0.0%
api-service/internal/config/auth.go:389: GetEnabledOAuth2Providers 0.0%
api-service/internal/config/auth.go:401: IsOAuth2Enabled 0.0%
api-service/internal/config/auth.go:406: IsTwoFactorEnabled 0.0%
api-service/internal/config/auth.go:411: IsTwoFactorRequiredForRole 0.0%
api-service/internal/config/auth.go:421: GetPasswordPolicy 0.0%
api-service/internal/config/auth.go:426: GetLoginSecurity 0.0%
api-service/internal/config/config.go:138: Load 0.0%
api-service/internal/config/config.go:184: setDefaults 0.0%
api-service/internal/constants/constants.go:249: GetModuleTableName 0.0%
api-service/internal/constants/constants.go:285: GetModuleType 0.0%
api-service/internal/constants/constants.go:371: GetTimezoneConvertibleFields 0.0%
api-service/internal/controller/alert.go:24: NewAlertController 0.0%
api-service/internal/controller/alert.go:37: bindAndValidateRequest 0.0%
api-service/internal/controller/alert.go:69: GetAlertRules 0.0%
api-service/internal/controller/alert.go:99: CreateAlertRule 0.0%
api-service/internal/controller/alert.go:133: isExpression 0.0%
api-service/internal/controller/alert.go:150: GetAlertRule 0.0%
api-service/internal/controller/alert.go:188: UpdateAlertRule 0.0%
api-service/internal/controller/alert.go:239: DeleteAlertRule 0.0%
api-service/internal/controller/alert.go:281: GetAlertRecords 0.0%
api-service/internal/controller/alert.go:313: AcknowledgeAlertRecord 0.0%
api-service/internal/controller/alert.go:374: ResolveAlertRecord 0.0%
api-service/internal/controller/audit_log.go:28: NewAuditLogController 0.0%
api-service/internal/controller/audit_log.go:53: GetAuditLog 0.0%
api-service/internal/controller/audit_log.go:88: ListAuditLogs 0.0%
api-service/internal/controller/audit_log.go:116: GetAuditLogStatistics 0.0%
api-service/internal/controller/audit_log.go:145: ExportAuditLogs 0.0%
api-service/internal/controller/audit_log.go:169: generateExportFilename 0.0%
api-service/internal/controller/audit_log.go:176: getFileExtensionByFormat 0.0%
api-service/internal/controller/health.go:20: NewHealthController 0.0%
api-service/internal/controller/health.go:36: DatabaseHealth 0.0%
api-service/internal/controller/health.go:71: SystemHealth 0.0%
api-service/internal/controller/health.go:91: checkDatabase 0.0%
api-service/internal/controller/health.go:114: checkRedis 0.0%
api-service/internal/controller/health.go:142: checkInfluxDB 0.0%
api-service/internal/controller/health.go:182: finalizeHealthResponse 0.0%
api-service/internal/controller/health.go:216: DatabaseStats 0.0%
api-service/internal/controller/health.go:234: Ping 0.0%
api-service/internal/controller/health.go:250: Readiness 0.0%
api-service/internal/controller/health.go:275: Liveness 0.0%
api-service/internal/controller/helpers.go:15: BindAndValidateRequest 0.0%
api-service/internal/controller/helpers.go:44: BindAndValidateQuery 0.0%
api-service/internal/controller/helpers.go:73: GetUserID 0.0%
api-service/internal/controller/helpers.go:87: ParseIDParam 0.0%
api-service/internal/controller/helpers.go:102: GetPaginationParams 0.0%
api-service/internal/controller/i18n.go:16: NewI18nController 0.0%
api-service/internal/controller/i18n.go:28: GetLanguages 0.0%
api-service/internal/controller/i18n.go:51: GetTranslations 0.0%
api-service/internal/controller/i18n.go:82: TestI18n 0.0%
api-service/internal/controller/role_permission.go:24: NewRolePermissionController 0.0%
api-service/internal/controller/role_permission.go:50: CreateRole 0.0%
api-service/internal/controller/role_permission.go:86: GetRole 0.0%
api-service/internal/controller/role_permission.go:119: ListRoles 0.0%
api-service/internal/controller/role_permission.go:158: UpdateRole 0.0%
api-service/internal/controller/role_permission.go:212: DeleteRole 0.0%
api-service/internal/controller/role_permission.go:243: AssignPermissions 0.0%
api-service/internal/controller/role_permission.go:297: RemovePermissions 0.0%
api-service/internal/controller/role_permission.go:345: GetRoleUsers 0.0%
api-service/internal/controller/role_permission.go:376: CreatePermission 0.0%
api-service/internal/controller/role_permission.go:411: GetPermission 0.0%
api-service/internal/controller/role_permission.go:440: UpdatePermission 0.0%
api-service/internal/controller/role_permission.go:493: DeletePermission 0.0%
api-service/internal/controller/role_permission.go:529: ListPermissions 0.0%
api-service/internal/controller/role_permission.go:567: GetPermissionTree 0.0%
api-service/internal/controller/role_permission.go:607: GetPermissionRoles 0.0%
api-service/internal/controller/security.go:55: NewSecurityController 0.0%
api-service/internal/controller/security.go:85: RevokeAPIToken 0.0%
api-service/internal/controller/security.go:124: RefreshAPIToken 0.0%
api-service/internal/controller/security.go:151: GetAuthConfig 0.0%
api-service/internal/controller/security.go:173: UpdateAuthConfig 0.0%
api-service/internal/controller/security.go:200: GetOAuth2Providers 0.0%
api-service/internal/controller/security.go:221: EnableTOTP 0.0%
api-service/internal/controller/security.go:250: ConfirmTOTP 0.0%
api-service/internal/controller/security.go:295: DisableTOTP 0.0%
api-service/internal/controller/security.go:340: EnableEmailTwoFactor 0.0%
api-service/internal/controller/security.go:384: DisableEmailTwoFactor 0.0%
api-service/internal/controller/security.go:412: SendEmailCode 0.0%
api-service/internal/controller/security.go:441: VerifyTwoFactor 0.0%
api-service/internal/controller/security.go:481: GetTwoFactorStatus 0.0%
api-service/internal/controller/security.go:509: GenerateBackupCodes 0.0%
api-service/internal/controller/security.go:537: DisableTwoFactor 0.0%
api-service/internal/controller/security.go:578: GenerateTOTPSecret 0.0%
api-service/internal/controller/system_config.go:21: NewSystemConfigController 0.0%
api-service/internal/controller/system_config.go:46: ListSystemConfigs 0.0%
api-service/internal/controller/system_config.go:73: TestSMTP 0.0%
api-service/internal/controller/system_config.go:98: ListBasicConfigs 0.0%
api-service/internal/controller/system_config.go:125: ListSecurityConfigs 0.0%
api-service/internal/controller/system_config.go:153: ListEmailConfigs 0.0%
api-service/internal/controller/system_config.go:183: BatchUpdateSystemConfigs 0.0%
api-service/internal/controller/tag.go:25: NewTagController 0.0%
api-service/internal/controller/tag.go:35: getCurrentUserID64 0.0%
api-service/internal/controller/tag.go:63: CreateTag 0.0%
api-service/internal/controller/tag.go:102: GetTag 0.0%
api-service/internal/controller/tag.go:137: UpdateTag 0.0%
api-service/internal/controller/tag.go:184: DeleteTag 0.0%
api-service/internal/controller/tag.go:223: ListTags 0.0%
api-service/internal/controller/tag.go:255: AssignTags 0.0%
api-service/internal/controller/tag.go:296: ReplaceTags 0.0%
api-service/internal/controller/tag.go:337: UnassignTags 0.0%
api-service/internal/controller/tag.go:376: SearchTags 0.0%
api-service/internal/controller/tag.go:409: GetResourceTags 0.0%
api-service/internal/controller/tag.go:446: SearchResourcesByTags 0.0%
api-service/internal/controller/user.go:24: NewUserController 0.0%
api-service/internal/controller/user.go:33: bindAndValidateRequest 0.0%
api-service/internal/controller/user.go:43: handleUserIDBasedRequest 0.0%
api-service/internal/controller/user.go:92: ListUsers 0.0%
api-service/internal/controller/user.go:145: CreateUser 0.0%
api-service/internal/controller/user.go:183: GetUser 0.0%
api-service/internal/controller/user.go:219: UpdateUser 0.0%
api-service/internal/controller/user.go:264: DeleteUser 0.0%
api-service/internal/controller/user.go:300: UpdateUserStatus 0.0%
api-service/internal/controller/user.go:324: UpdateUserPassword 0.0%
api-service/internal/controller/user_auth.go:22: NewUserAuthController 0.0%
api-service/internal/controller/user_auth.go:33: bindAndValidateRequest 0.0%
api-service/internal/controller/user_auth.go:43: handleUserAuth 0.0%
api-service/internal/controller/user_auth.go:80: Register 0.0%
api-service/internal/controller/user_auth.go:99: Login 0.0%
api-service/internal/controller/user_auth.go:128: ForgotPassword 0.0%
api-service/internal/controller/user_auth.go:156: ShowResetPasswordForm 0.0%
api-service/internal/controller/user_auth.go:189: ResetPassword 0.0%
api-service/internal/controller/user_auth.go:217: VerifyEmail 0.0%
api-service/internal/controller/user_auth.go:253: ResendVerificationEmail 0.0%
api-service/internal/controller/user_auth.go:282: OAuth2Login 0.0%
api-service/internal/controller/user_auth.go:312: Logout 0.0%
api-service/internal/controller/user_profile.go:22: NewUserProfileController 0.0%
api-service/internal/controller/user_profile.go:47: GetProfile 0.0%
api-service/internal/controller/user_profile.go:83: UpdateProfile 0.0%
api-service/internal/controller/user_profile.go:126: ChangePassword 0.0%
api-service/internal/controller/user_profile.go:170: GetLoginHistories 0.0%
api-service/internal/controller/user_profile.go:211: GetNotificationSettings 0.0%
api-service/internal/controller/user_profile.go:245: UpdateNotificationSettings 0.0%
api-service/internal/controller/user_profile.go:285: GetSecuritySettings 0.0%
api-service/internal/controller/user_profile.go:319: UpdateSecuritySettings 0.0%
api-service/internal/dto/common/common.go:22: GetOffset 0.0%
api-service/internal/dto/common/common.go:30: GetPageSize 0.0%
api-service/internal/dto/common/common.go:56: NewPaginationResponse 0.0%
api-service/internal/dto/common/common.go:72: NewListResponse 0.0%
api-service/internal/dto/common/common.go:96: GetSortOrder 0.0%
api-service/internal/dto/request/security.go:229: GetPage 0.0%
api-service/internal/dto/request/security.go:242: GetPageSize 0.0%
api-service/internal/dto/request/security.go:253: GetOffset 0.0%
api-service/internal/dto/response/audit_log.go:141: FromAuditLog 0.0%
api-service/internal/dto/response/audit_log.go:178: FromCreateRequest 0.0%
api-service/internal/dto/response/response.go:32: Success 0.0%
api-service/internal/dto/response/response.go:41: ErrorResponse 0.0%
api-service/internal/dto/response/response.go:50: Error 0.0%
api-service/internal/dto/response/response.go:55: BuildResponseWithI18n 0.0%
api-service/internal/dto/response/response.go:66: BadRequest 0.0%
api-service/internal/dto/response/response.go:71: OKWithData 0.0%
api-service/internal/dto/response/response.go:76: OK 0.0%
api-service/internal/dto/response/response.go:81: DataNotFound 0.0%
api-service/internal/dto/response/response.go:86: Unauthorized 0.0%
api-service/internal/dto/response/response.go:91: AccessForbidden 0.0%
api-service/internal/dto/response/response.go:96: InternalError 0.0%
api-service/internal/dto/response/response.go:104: WithError 0.0%
api-service/internal/dto/response/security.go:255: ConvertToRoleResponse 0.0%
api-service/internal/dto/response/security.go:294: ConvertToPermissionResponse 0.0%
api-service/internal/dto/response/security.go:339: ConvertToAPITokenResponse 0.0%
api-service/internal/dto/response/security.go:358: extractScopes 0.0%
api-service/internal/dto/response/security.go:384: ConvertToPermissionTreeResponse 0.0%
api-service/internal/dto/response/security.go:413: ConvertToTwoFactorStatusResponse 0.0%
api-service/internal/middleware/audit_log.go:21: Write 0.0%
api-service/internal/middleware/audit_log.go:27: AuditLogMiddleware 0.0%
api-service/internal/middleware/cors.go:9: CORS 0.0%
api-service/internal/middleware/error.go:11: ErrorHandler 0.0%
api-service/internal/middleware/error.go:29: RequestValidator 0.0%
api-service/internal/middleware/i18n.go:10: I18nMiddleware 0.0%
api-service/internal/middleware/i18n.go:46: GetLanguage 0.0%
api-service/internal/middleware/i18n.go:56: T 0.0%
api-service/internal/middleware/logger.go:11: LoggerMiddleware 0.0%
api-service/internal/middleware/logger.go:34: Logger 0.0%
api-service/internal/middleware/permission.go:64: isPublicRoute 0.0%
api-service/internal/middleware/permission.go:75: isWhiteListRoutes 0.0%
api-service/internal/middleware/permission.go:90: PermissionMiddleware 0.0%
api-service/internal/middleware/permission.go:130: authenticateRequest 0.0%
api-service/internal/middleware/permission.go:150: handleAuthError 0.0%
api-service/internal/middleware/permission.go:161: handleTokenValidationError 0.0%
api-service/internal/middleware/permission.go:172: checkUserPermission 0.0%
api-service/internal/middleware/permission.go:217: buildResourceAction 0.0%
api-service/internal/middleware/permission.go:256: buildResourceFromPath 0.0%
api-service/internal/middleware/permission.go:292: isPathParameter 0.0%
api-service/internal/middleware/permission.go:306: isNumericID 0.0%
api-service/internal/model/alert.go:50: TableName 0.0%
api-service/internal/model/alert.go:75: TableName 0.0%
api-service/internal/model/audit_log.go:38: TableName 0.0%
api-service/internal/model/audit_log.go:43: GetFormattedRequestParams 0.0%
api-service/internal/model/audit_log.go:58: SanitizeForExport 0.0%
api-service/internal/model/audit_log.go:84: sanitizeData 0.0%
api-service/internal/model/security.go:37: TableName 0.0%
api-service/internal/model/security.go:42: IsActive 0.0%
api-service/internal/model/security.go:75: TableName 0.0%
api-service/internal/model/security.go:80: IsActive 0.0%
api-service/internal/model/security.go:102: TableName 0.0%
api-service/internal/model/security.go:123: TableName 0.0%
api-service/internal/model/security.go:148: TableName 0.0%
api-service/internal/model/security.go:153: IsExpired 0.0%
api-service/internal/model/security.go:176: TableName 0.0%
api-service/internal/model/security.go:184: Scan 0.0%
api-service/internal/model/security.go:209: Value 0.0%
api-service/internal/model/system_config.go:35: TableName 0.0%
api-service/internal/model/system_config.go:40: GetEffectiveValue 0.0%
api-service/internal/model/tag.go:22: TableName 0.0%
api-service/internal/model/tag.go:39: TableName 0.0%
api-service/internal/model/user.go:33: TableName 0.0%
api-service/internal/model/user.go:38: IsActive 0.0%
api-service/internal/model/user.go:43: GetDisplayName 0.0%
api-service/internal/model/user_profile.go:41: TableName 0.0%
api-service/internal/model/user_profile.go:46: TableName 0.0%
api-service/internal/repository/alert.go:17: NewAlertRepository 0.0%
api-service/internal/repository/alert.go:24: CreateAlertRule 0.0%
api-service/internal/repository/alert.go:33: GetAlertRuleByID 0.0%
api-service/internal/repository/alert.go:44: ListAlertRules 0.0%
api-service/internal/repository/alert.go:84: UpdateAlertRule 0.0%
api-service/internal/repository/alert.go:96: DeleteAlertRule 0.0%
api-service/internal/repository/alert.go:106: ListAlertRecords 0.0%
api-service/internal/repository/alert.go:157: GetAlertRecordByID 0.0%
api-service/internal/repository/alert.go:172: CreateAlertRecord 0.0%
api-service/internal/repository/alert.go:181: UpdateAlertRecord 0.0%
api-service/internal/repository/alert.go:190: DeleteAlertRecord 0.0%
api-service/internal/repository/alert.go:199: ExistsAlertRecord 0.0%
api-service/internal/repository/api_token.go:19: NewAPITokenRepository 0.0%
api-service/internal/repository/api_token.go:24: Create 0.0%
api-service/internal/repository/api_token.go:29: GetByID 0.0%
api-service/internal/repository/api_token.go:48: GetByToken 0.0%
api-service/internal/repository/api_token.go:65: Update 0.0%
api-service/internal/repository/api_token.go:77: Delete 0.0%
api-service/internal/repository/api_token.go:89: GetByUserID 0.0%
api-service/internal/repository/api_token.go:108: GetActiveTokenByUserID 0.0%
api-service/internal/repository/api_token.go:133: UpdateLastUsed 0.0%
api-service/internal/repository/api_token.go:145: CleanExpiredTokens 0.0%
api-service/internal/repository/api_token.go:152: CreateWithTx 0.0%
api-service/internal/repository/api_token.go:157: UpdateWithTx 0.0%
api-service/internal/repository/audit_log.go:34: NewAuditLogRepository 0.0%
api-service/internal/repository/audit_log.go:41: Create 0.0%
api-service/internal/repository/audit_log.go:51: GetByID 0.0%
api-service/internal/repository/audit_log.go:66: List 0.0%
api-service/internal/repository/audit_log.go:143: GetStatistics 0.0%
api-service/internal/repository/audit_log.go:224: Export 0.0%
api-service/internal/repository/audit_log.go:253: CleanupOldLogs 0.0%
api-service/internal/repository/audit_log.go:264: getTimelineData 0.0%
api-service/internal/repository/helpers.go:13: GetRolesByPermissionID 0.0%
api-service/internal/repository/helpers.go:49: GetUsersByRoleID 0.0%
api-service/internal/repository/permission.go:19: NewPermissionRepository 0.0%
api-service/internal/repository/permission.go:24: Create 0.0%
api-service/internal/repository/permission.go:32: GetByID 0.0%
api-service/internal/repository/permission.go:45: GetByCode 0.0%
api-service/internal/repository/permission.go:58: Update 0.0%
api-service/internal/repository/permission.go:89: Delete 0.0%
api-service/internal/repository/permission.go:147: List 0.0%
api-service/internal/repository/permission.go:207: GetTree 0.0%
api-service/internal/repository/permission.go:233: buildBaseQuery 0.0%
api-service/internal/repository/permission.go:246: getAllPermissions 0.0%
api-service/internal/repository/permission.go:256: getPermissionsWithScope 0.0%
api-service/internal/repository/permission.go:280: getScopedPermissions 0.0%
api-service/internal/repository/permission.go:291: collectParentCodes 0.0%
api-service/internal/repository/permission.go:312: getParentPermissions 0.0%
api-service/internal/repository/permission.go:332: combinePermissions 0.0%
api-service/internal/repository/permission.go:357: buildPermissionTree 0.0%
api-service/internal/repository/permission.go:387: filterTreeByScope 0.0%
api-service/internal/repository/permission.go:400: filterNodeByScope 0.0%
api-service/internal/repository/permission.go:430: GetWithRoles 0.0%
api-service/internal/repository/permission.go:447: GetChildren 0.0%
api-service/internal/repository/permission.go:463: GetRoles 0.0%
api-service/internal/repository/permission.go:468: CountRoles 0.0%
api-service/internal/repository/permission.go:481: BatchUpdateStatus 0.0%
api-service/internal/repository/permission.go:498: GetByIDs 0.0%
api-service/internal/repository/permission.go:514: GetUserPermissions 0.0%
api-service/internal/repository/permission.go:532: CheckUserPermission 0.0%
api-service/internal/repository/permission.go:550: CreateWithTx 0.0%
api-service/internal/repository/permission.go:558: UpdateWithTx 0.0%
api-service/internal/repository/role.go:19: NewRoleRepository 0.0%
api-service/internal/repository/role.go:24: Create 0.0%
api-service/internal/repository/role.go:32: GetByID 0.0%
api-service/internal/repository/role.go:45: GetByCode 0.0%
api-service/internal/repository/role.go:58: Update 0.0%
api-service/internal/repository/role.go:89: Delete 0.0%
api-service/internal/repository/role.go:136: List 0.0%
api-service/internal/repository/role.go:194: GetWithPermissions 0.0%
api-service/internal/repository/role.go:211: GetWithUsers 0.0%
api-service/internal/repository/role.go:228: AssignPermissionsWithTx 0.0%
api-service/internal/repository/role.go:264: RemovePermissions 0.0%
api-service/internal/repository/role.go:281: GetPermissions 0.0%
api-service/internal/repository/role.go:297: GetUsers 0.0%
api-service/internal/repository/role.go:302: CountPermissions 0.0%
api-service/internal/repository/role.go:315: CountUsers 0.0%
api-service/internal/repository/role.go:328: BatchUpdateStatus 0.0%
api-service/internal/repository/role.go:345: CreateWithTx 0.0%
api-service/internal/repository/role.go:353: UpdateWithTx 0.0%
api-service/internal/repository/system_config.go:21: NewSystemConfigRepository 0.0%
api-service/internal/repository/system_config.go:26: Create 0.0%
api-service/internal/repository/system_config.go:35: GetByKey 0.0%
api-service/internal/repository/system_config.go:50: GetByID 0.0%
api-service/internal/repository/system_config.go:65: List 0.0%
api-service/internal/repository/system_config.go:93: Update 0.0%
api-service/internal/repository/system_config.go:107: UpdateValue 0.0%
api-service/internal/repository/system_config.go:125: Delete 0.0%
api-service/internal/repository/tag.go:17: NewTagRepository 0.0%
api-service/internal/repository/tag.go:22: CreateTag 0.0%
api-service/internal/repository/tag.go:27: GetTagByID 0.0%
api-service/internal/repository/tag.go:37: GetTagByName 0.0%
api-service/internal/repository/tag.go:47: UpdateTag 0.0%
api-service/internal/repository/tag.go:52: DeleteTag 0.0%
api-service/internal/repository/tag.go:57: ListTags 0.0%
api-service/internal/repository/tag.go:74: ListTagsWithUsageCount 0.0%
api-service/internal/repository/tag.go:94: SearchTagsByName 0.0%
api-service/internal/repository/tag.go:108: ExistsTagByName 0.0%
api-service/internal/repository/tag.go:115: ExistsTagByNameExcludeID 0.0%
api-service/internal/repository/tag.go:123: CreateTagging 0.0%
api-service/internal/repository/tag.go:128: GetTaggingsByResourceID 0.0%
api-service/internal/repository/tag.go:138: GetTaggingsByTagID 0.0%
api-service/internal/repository/tag.go:145: DeleteTagging 0.0%
api-service/internal/repository/tag.go:152: DeleteTaggingsByResourceID 0.0%
api-service/internal/repository/tag.go:159: DeleteTaggingsByTagIDs 0.0%
api-service/internal/repository/tag.go:166: CreateTaggingsBatch 0.0%
api-service/internal/repository/tag.go:174: ExistsTagging 0.0%
api-service/internal/repository/tag.go:182: SearchResourcesByTags 0.0%
api-service/internal/repository/two_factor.go:18: NewTwoFactorRepository 0.0%
api-service/internal/repository/two_factor.go:23: Create 0.0%
api-service/internal/repository/two_factor.go:28: GetByUserIDAndMethod 0.0%
api-service/internal/repository/two_factor.go:41: Update 0.0%
api-service/internal/repository/two_factor.go:46: Delete 0.0%
api-service/internal/repository/two_factor.go:51: GetByUserID 0.0%
api-service/internal/repository/two_factor.go:61: EnableMethod 0.0%
api-service/internal/repository/two_factor.go:78: DisableMethod 0.0%
api-service/internal/repository/two_factor.go:90: IsMethodEnabled 0.0%
api-service/internal/repository/two_factor.go:100: CreateWithTx 0.0%
api-service/internal/repository/two_factor.go:105: UpdateWithTx 0.0%
api-service/internal/repository/user.go:18: NewUserRepository 0.0%
api-service/internal/repository/user.go:23: Create 0.0%
api-service/internal/repository/user.go:28: GetByID 0.0%
api-service/internal/repository/user.go:38: GetByIDWithRelations 0.0%
api-service/internal/repository/user.go:51: GetByUsername 0.0%
api-service/internal/repository/user.go:61: GetByEmail 0.0%
api-service/internal/repository/user.go:71: CreateUserRole 0.0%
api-service/internal/repository/user.go:79: GetByUsernameOrEmail 0.0%
api-service/internal/repository/user.go:91: Update 0.0%
api-service/internal/repository/user.go:96: Delete 0.0%
api-service/internal/repository/user.go:106: List 0.0%
api-service/internal/repository/user.go:130: ListWithRelations 0.0%
api-service/internal/repository/user.go:163: Search 0.0%
api-service/internal/repository/user.go:185: ExistsByUsername 0.0%
api-service/internal/repository/user.go:192: ExistsByEmail 0.0%
api-service/internal/repository/user.go:199: ExistsByUsernameExcludeID 0.0%
api-service/internal/repository/user.go:208: ExistsByEmailExcludeID 0.0%
api-service/internal/repository/user.go:217: GetActiveUsers 0.0%
api-service/internal/repository/user.go:234: CountByStatus 0.0%
api-service/internal/repository/user.go:241: GetUserStats 0.0%
api-service/internal/repository/user.go:257: applyFilters 0.0%
api-service/internal/repository/user.go:267: ExistsByID 0.0%
api-service/internal/repository/user.go:274: GetRoleIDsByUserID 0.0%
api-service/internal/repository/user.go:287: DeleteUserRole 0.0%
api-service/internal/repository/user_profile.go:17: NewUserProfileRepository 0.0%
api-service/internal/repository/user_profile.go:24: GetUserProfileByID 0.0%
api-service/internal/repository/user_profile.go:36: LoadUserRoles 0.0%
api-service/internal/repository/user_profile.go:46: UpdateUserProfile 0.0%
api-service/internal/repository/user_profile.go:60: UpdateUserPassword 0.0%
api-service/internal/repository/user_profile.go:74: GetLoginHistories 0.0%
api-service/internal/repository/user_profile.go:97: GetUserConfig 0.0%
api-service/internal/repository/user_profile.go:112: GetUserConfigsByCategory 0.0%
api-service/internal/repository/user_profile.go:123: SaveUserConfig 0.0%
api-service/internal/router/router.go:36: SetupRouter 0.0%
api-service/internal/router/router.go:74: setupMiddleware 0.0%
api-service/internal/router/router.go:92: setupHealthCheck 0.0%
api-service/internal/router/router.go:126: setupSwaggerRoute 0.0%
api-service/internal/router/router.go:135: setupAPIRoutes 0.0%
api-service/internal/router/router.go:154: setupUserAuthRoutes 0.0%
api-service/internal/router/router.go:169: setupI18nRoutes 0.0%
api-service/internal/router/router.go:182: setupUserRoutes 0.0%
api-service/internal/router/router.go:196: setupRoleRoutes 0.0%
api-service/internal/router/router.go:215: setupPermissionRoutes 0.0%
api-service/internal/router/router.go:231: setupAPITokenRoutes 0.0%
api-service/internal/router/router.go:242: setupTwoFactorRoutes 0.0%
api-service/internal/router/router.go:258: setupAuthConfigRoutes 0.0%
api-service/internal/router/router.go:271: setupAuditLogRoutes 0.0%
api-service/internal/router/router.go:285: setupUserProfileRoutes 0.0%
api-service/internal/router/router.go:302: setupSystemConfigRoutes 0.0%
api-service/internal/router/router.go:318: setupTagRoutes 0.0%
api-service/internal/router/router.go:341: setupAlertRoutes 0.0%
api-service/internal/service/alert.go:26: NewAlertService 100.0%
api-service/internal/service/alert.go:39: CreateAlertRule 77.8%
api-service/internal/service/alert.go:76: GetAlertRuleByID 44.4%
api-service/internal/service/alert.go:97: ListAlertRules 88.9%
api-service/internal/service/alert.go:138: UpdateAlertRule 66.7%
api-service/internal/service/alert.go:203: DeleteAlertRule 41.7%
api-service/internal/service/alert.go:234: buildAlertRuleResponse 100.0%
api-service/internal/service/alert.go:252: ListAlertRecords 69.2%
api-service/internal/service/alert.go:311: AcknowledgeAlertRecord 61.9%
api-service/internal/service/alert.go:367: ResolveAlertRecord 63.2%
api-service/internal/service/alert.go:418: mapAlertRecordToDTO 0.0%
api-service/internal/service/alert.go:440: determineSeverity 0.0%
api-service/internal/service/api_token.go:27: NewAPITokenService 0.0%
api-service/internal/service/api_token.go:42: CleanExpiredTokens 66.7%
api-service/internal/service/api_token.go:57: RevokeAPITokenByToken 0.0%
api-service/internal/service/api_token.go:95: RefreshUserAPIToken 0.0%
api-service/internal/service/api_token.go:171: CheckTokenIsExists 0.0%
api-service/internal/service/audit_log.go:56: logAndWrapError 100.0%
api-service/internal/service/audit_log.go:62: NewAuditLogService 100.0%
api-service/internal/service/audit_log.go:81: RecordLog 100.0%
api-service/internal/service/audit_log.go:123: GetAuditLog 93.3%
api-service/internal/service/audit_log.go:156: ListAuditLogs 97.0%
api-service/internal/service/audit_log.go:244: GetStatistics 93.8%
api-service/internal/service/audit_log.go:296: ExportAuditLogs 91.7%
api-service/internal/service/audit_log.go:384: CleanupExpiredLogs 77.8%
api-service/internal/service/audit_log.go:407: LogUserAction 0.0%
api-service/internal/service/audit_log.go:430: ShouldSkipAudit 100.0%
api-service/internal/service/audit_log.go:435: shouldSkip 100.0%
api-service/internal/service/audit_log.go:452: shouldSkipByMethod 94.4%
api-service/internal/service/audit_log.go:499: extractPathWithoutQuery 66.7%
api-service/internal/service/audit_log.go:507: RecordAuditFromRequest 0.0%
api-service/internal/service/audit_log.go:523: extractAuditInfoFromRequest 0.0%
api-service/internal/service/audit_log.go:583: getActionFromMethod 0.0%
api-service/internal/service/audit_log.go:611: buildDescription 0.0%
api-service/internal/service/audit_log.go:621: getModuleFromPath 0.0%
api-service/internal/service/audit_log.go:634: getRequestParams 0.0%
api-service/internal/service/audit_log.go:645: addQueryParams 0.0%
api-service/internal/service/audit_log.go:652: addPathParams 0.0%
api-service/internal/service/audit_log.go:659: addPostParams 0.0%
api-service/internal/service/audit_log.go:670: addFormData 0.0%
api-service/internal/service/audit_log.go:681: getValueFromSlice 0.0%
api-service/internal/service/audit_log.go:689: addJSONBodyData 0.0%
api-service/internal/service/audit_log.go:713: isPasswordField 0.0%
api-service/internal/service/audit_log.go:723: paramsToJSON 0.0%
api-service/internal/service/audit_log.go:736: extractErrorMessage 0.0%
api-service/internal/service/audit_log.go:759: extractResourceID 0.0%
api-service/internal/service/audit_log.go:770: extractUsernameFromRequestBody 0.0%
api-service/internal/service/auth_config.go:21: NewAuthConfigService 0.0%
api-service/internal/service/auth_config.go:29: GetAuthConfig 0.0%
api-service/internal/service/auth_config.go:121: UpdateAuthConfig 0.0%
api-service/internal/service/auth_config.go:149: updateAPIAuthConfig 0.0%
api-service/internal/service/auth_config.go:172: updateTokenAuthConfig 0.0%
api-service/internal/service/auth_config.go:195: updateUserAuthConfig 0.0%
api-service/internal/service/auth_config.go:228: updateSessionConfig 0.0%
api-service/internal/service/auth_config.go:248: updateBasicAuthConfig 0.0%
api-service/internal/service/auth_config.go:255: updateEmailAuthConfig 0.0%
api-service/internal/service/auth_config.go:265: GetOAuth2Providers 0.0%
api-service/internal/service/auth_config.go:296: convertOAuth2ProvidersToResponse 0.0%
api-service/internal/service/auth_config.go:321: updatePasswordPolicy 0.0%
api-service/internal/service/auth_config.go:346: updateLoginSecurity 0.0%
api-service/internal/service/auth_config.go:370: maskSensitiveValue 0.0%
api-service/internal/service/auth_config.go:381: updateOAuth2LoginConfig 0.0%
api-service/internal/service/auth_config.go:395: updateTwoFactorConfig 0.0%
api-service/internal/service/auth_config.go:408: updateTwoFactorMethodsConfig 0.0%
api-service/internal/service/auth_config.go:418: updateTOTPMethodConfig 0.0%
api-service/internal/service/auth_config.go:440: updateEmailMethodConfig 0.0%
api-service/internal/service/oauth2.go:45: NewOAuth2Service 0.0%
api-service/internal/service/oauth2.go:56: GetAuthorizationURL 0.0%
api-service/internal/service/oauth2.go:102: ExchangeCodeForToken 0.0%
api-service/internal/service/oauth2.go:164: GetUserInfo 0.0%
api-service/internal/service/oauth2.go:226: mapUserInfo 0.0%
api-service/internal/service/oauth2.go:251: mapUserFields 0.0%
api-service/internal/service/oauth2.go:260: mapSingleUserField 0.0%
api-service/internal/service/oauth2.go:279: mapUserID 0.0%
api-service/internal/service/oauth2.go:293: mapProviderSpecificID 0.0%
api-service/internal/service/oauth2.go:309: mapGenericUserID 0.0%
api-service/internal/service/oauth2.go:327: ValidateState 0.0%
api-service/internal/service/oauth2.go:343: RefreshToken 0.0%
api-service/internal/service/oauth2.go:404: IsProviderEnabled 0.0%
api-service/internal/service/oauth2.go:410: GetEnabledProviders 0.0%
api-service/internal/service/permission.go:24: NewPermissionService 0.0%
api-service/internal/service/permission.go:37: CreatePermission 57.9%
api-service/internal/service/permission.go:93: GetPermission 0.0%
api-service/internal/service/permission.go:109: UpdatePermission 78.9%
api-service/internal/service/permission.go:150: DeletePermission 58.8%
api-service/internal/service/permission.go:189: ListPermissions 80.0%
api-service/internal/service/permission.go:219: GetPermissionTree 71.4%
api-service/internal/service/permission.go:235: GetPermissionRoles 0.0%
api-service/internal/service/permission.go:266: CheckUserPermission 66.7%
api-service/internal/service/permission.go:284: GetUserPermissions 77.8%
api-service/internal/service/permission.go:306: BatchUpdatePermissionStatus 66.7%
api-service/internal/service/role.go:25: NewRoleService 0.0%
api-service/internal/service/role.go:40: CreateRole 87.5%
api-service/internal/service/role.go:62: validateRoleForCreation 75.0%
api-service/internal/service/role.go:79: validatePermissionIDs 70.0%
api-service/internal/service/role.go:99: buildRoleEntity 100.0%
api-service/internal/service/role.go:111: createRoleWithPermissions 71.4%
api-service/internal/service/role.go:130: GetRole 87.5%
api-service/internal/service/role.go:147: UpdateRole 81.8%
api-service/internal/service/role.go:177: getRoleForUpdate 75.0%
api-service/internal/service/role.go:194: updateRoleFields 100.0%
api-service/internal/service/role.go:206: updateRoleWithPermissions 71.4%
api-service/internal/service/role.go:225: DeleteRole 100.0%
api-service/internal/service/role.go:240: ListRoles 87.5%
api-service/internal/service/role.go:265: GetRoleWithPermissions 0.0%
api-service/internal/service/role.go:275: GetRoleUsers 0.0%
api-service/internal/service/role.go:304: AssignPermissions 61.9%
api-service/internal/service/role.go:351: RemovePermissions 53.8%
api-service/internal/service/role.go:382: BatchUpdateRoleStatus 66.7%
api-service/internal/service/system_config.go:29: NewSystemConfigService 100.0%
api-service/internal/service/system_config.go:51: ListSystemConfigs 90.9%
api-service/internal/service/system_config.go:90: TestSMTP 100.0%
api-service/internal/service/system_config.go:105: BatchUpdateSystemConfigs 69.2%
api-service/internal/service/system_config.go:158: encryptConfigValue 20.0%
api-service/internal/service/system_config.go:178: decryptConfigValue 80.0%
api-service/internal/service/system_config.go:199: decryptConfigList 60.0%
api-service/internal/service/tag.go:28: NewTagService 0.0%
api-service/internal/service/tag.go:43: CreateTag 85.7%
api-service/internal/service/tag.go:79: GetTag 75.0%
api-service/internal/service/tag.go:95: UpdateTag 72.7%
api-service/internal/service/tag.go:139: DeleteTag 66.7%
api-service/internal/service/tag.go:165: ListTags 86.7%
api-service/internal/service/tag.go:196: AssignTags 0.0%
api-service/internal/service/tag.go:251: ReplaceTags 0.0%
api-service/internal/service/tag.go:273: UnassignTags 0.0%
api-service/internal/service/tag.go:291: GetResourceTags 100.0%
api-service/internal/service/tag.go:315: SearchResourcesByTags 0.0%
api-service/internal/service/tag.go:372: buildSimpleResourceMap 0.0%
api-service/internal/service/tag.go:409: SearchTags 100.0%
api-service/internal/service/tag.go:432: convertTagToResponse 100.0%
api-service/internal/service/tag.go:445: processTagIDsForAssignment 0.0%
api-service/internal/service/tag.go:494: processTagNamesForAssignment 0.0%
api-service/internal/service/tag.go:557: collectTagIDs 0.0%
api-service/internal/service/two_factor.go:37: NewTwoFactorService 0.0%
api-service/internal/service/two_factor.go:50: GetTwoFactorStatus 0.0%
api-service/internal/service/two_factor.go:66: EnableTOTP 0.0%
api-service/internal/service/two_factor.go:133: ConfirmTOTP 0.0%
api-service/internal/service/two_factor.go:191: DisableTOTP 0.0%
api-service/internal/service/two_factor.go:228: EnableEmailTwoFactor 0.0%
api-service/internal/service/two_factor.go:269: DisableEmailTwoFactor 0.0%
api-service/internal/service/two_factor.go:295: SendEmailCode 0.0%
api-service/internal/service/two_factor.go:331: VerifyTwoFactor 0.0%
api-service/internal/service/two_factor.go:351: GenerateBackupCodes 0.0%
api-service/internal/service/two_factor.go:389: verifyTOTP 0.0%
api-service/internal/service/two_factor.go:407: verifyEmail 0.0%
api-service/internal/service/two_factor.go:425: verifyBackupCode 0.0%
api-service/internal/service/two_factor.go:458: generateBackupCodes 0.0%
api-service/internal/service/two_factor.go:470: generateEmailCode 0.0%
api-service/internal/service/user.go:29: NewUserService 0.0%
api-service/internal/service/user.go:37: ChangePassword 68.8%
api-service/internal/service/user.go:71: ListUsers 65.0%
api-service/internal/service/user.go:116: GetUser 75.0%
api-service/internal/service/user.go:132: CreateUser 68.8%
api-service/internal/service/user.go:173: UpdateUser 57.9%
api-service/internal/service/user.go:214: syncUserRoles 80.0%
api-service/internal/service/user.go:268: UpdateUserStatus 58.3%
api-service/internal/service/user.go:290: DeleteUser 66.7%
api-service/internal/service/user.go:314: UpdateUserPassword 0.0%
api-service/internal/service/user.go:343: ValidateUserAccess 0.0%
api-service/internal/service/user.go:349: CheckUserQuota 0.0%
api-service/internal/service/user.go:357: validateEmailUniqueness 66.7%
api-service/internal/service/user.go:369: validateUserCreation 53.8%
api-service/internal/service/user.go:393: createUserFromRequest 66.7%
api-service/internal/service/user.go:430: updateUserFromRequest 61.1%
api-service/internal/service/user.go:462: buildUserResponse 42.9%
api-service/internal/service/user_auth.go:60: NewUserAuthService 0.0%
api-service/internal/service/user_auth.go:94: Register 0.0%
api-service/internal/service/user_auth.go:172: Login 0.0%
api-service/internal/service/user_auth.go:265: ForgotPassword 0.0%
api-service/internal/service/user_auth.go:312: ValidateResetToken 0.0%
api-service/internal/service/user_auth.go:332: ResetPassword 0.0%
api-service/internal/service/user_auth.go:387: VerifyEmail 0.0%
api-service/internal/service/user_auth.go:455: ResendVerificationEmail 0.0%
api-service/internal/service/user_auth.go:506: OAuth2Login 0.0%
api-service/internal/service/user_auth.go:590: generateUsernameFromEmail 0.0%
api-service/internal/service/user_auth.go:611: findOrCreateOAuth2User 0.0%
api-service/internal/service/user_auth.go:663: buildUserResponse 0.0%
api-service/internal/service/user_auth.go:699: setEmailVerificationLock 0.0%
api-service/internal/service/user_auth.go:714: hasEmailVerificationLock 0.0%
api-service/internal/service/user_auth.go:733: deleteEmailVerificationLock 0.0%
api-service/internal/service/user_auth.go:748: storeTokenInRedis 0.0%
api-service/internal/service/user_auth.go:777: getTokenFromRedis 0.0%
api-service/internal/service/user_auth.go:810: storeJWTToken 0.0%
api-service/internal/service/user_auth.go:874: Logout 0.0%
api-service/internal/service/user_auth.go:909: generateVerificationToken 0.0%
api-service/internal/service/user_auth.go:946: validateVerificationToken 0.0%
api-service/internal/service/user_auth.go:988: markTokenAsUsed 0.0%
api-service/internal/service/user_auth.go:1014: storeUserPreferencesInRedis 0.0%
api-service/internal/service/user_auth.go:1069: fillMissingPreferences 0.0%
api-service/internal/service/user_auth.go:1109: getSystemConfigByKey 0.0%
api-service/internal/service/user_profile.go:27: NewUserProfileService 100.0%
api-service/internal/service/user_profile.go:40: GetUserProfile 76.9%
api-service/internal/service/user_profile.go:95: UpdateUserProfile 61.5%
api-service/internal/service/user_profile.go:148: ChangeProfilePassword 52.6%
api-service/internal/service/user_profile.go:189: GetLoginHistories 92.9%
api-service/internal/service/user_profile.go:232: GetNotificationSettings 85.7%
api-service/internal/service/user_profile.go:270: UpdateNotificationSettings 46.7%
api-service/internal/service/user_profile.go:314: GetSecuritySettings 78.6%
api-service/internal/service/user_profile.go:349: UpdateSecuritySettings 60.0%
api-service/internal/service/user_profile.go:379: saveUserConfig 75.0%
api-service/internal/service/user_profile.go:396: boolToString 100.0%
api-service/pkg/auth/auth_policy.go:27: NewAuthPolicy 100.0%
api-service/pkg/auth/auth_policy.go:60: NewValidator 100.0%
api-service/pkg/auth/auth_policy.go:68: ValidateUsername 100.0%
api-service/pkg/auth/auth_policy.go:108: ValidateEmail 42.3%
api-service/pkg/auth/auth_policy.go:160: IsEmail 100.0%
api-service/pkg/auth/auth_policy.go:172: ValidateUsernameOrEmail 100.0%
api-service/pkg/auth/auth_policy.go:194: ValidatePasswordWithPolicy 100.0%
api-service/pkg/auth/auth_policy.go:212: validatePasswordLength 100.0%
api-service/pkg/auth/auth_policy.go:229: validatePasswordComplexity 86.7%
api-service/pkg/auth/auth_policy.go:259: analyzePasswordCharacters 100.0%
api-service/pkg/auth/auth_policy.go:278: ValidateLoginMethod 69.2%
api-service/pkg/auth/auth_policy.go:337: CheckLoginSecurity 0.0%
api-service/pkg/auth/auth_policy.go:386: ValidatePassword 0.0%
api-service/pkg/auth/auth_policy.go:400: checkIPWhitelist 0.0%
api-service/pkg/auth/auth_policy.go:448: isIPAllowed 0.0%
api-service/pkg/auth/auth_policy.go:481: checkLoginTimeRestrictions 0.0%
api-service/pkg/auth/auth_policy.go:517: parseTimeString 83.3%
api-service/pkg/auth/auth_policy.go:543: checkAccountLockout 0.0%
api-service/pkg/auth/auth_policy.go:579: recordLoginFailure 0.0%
api-service/pkg/auth/auth_policy.go:666: clearLoginAttempts 0.0%
api-service/pkg/auth/auth_policy.go:685: GetLoginAttempts 0.0%
api-service/pkg/auth/auth_policy.go:711: IsAccountLocked 0.0%
api-service/pkg/auth/auth_policy.go:738: InitGlobalAuthPolicy 100.0%
api-service/pkg/auth/auth_policy.go:745: ValidateEmail 100.0%
api-service/pkg/auth/auth_policy.go:761: IsEmail 100.0%
api-service/pkg/auth/auth_policy.go:774: ValidateUsernameOrEmail 100.0%
api-service/pkg/auth/jwt.go:36: NewJWTAuth 0.0%
api-service/pkg/auth/jwt.go:43: InitJWT 0.0%
api-service/pkg/auth/jwt.go:48: GetGlobalJWT 0.0%
api-service/pkg/auth/jwt.go:53: UpdateJWTConfig 0.0%
api-service/pkg/auth/jwt.go:58: HashToken 0.0%
api-service/pkg/auth/jwt.go:64: ParseWithClaims 0.0%
api-service/pkg/auth/jwt.go:75: ExtractTokenFromHeader 0.0%
api-service/pkg/auth/jwt.go:89: GenerateTokenWithUserInfo 0.0%
api-service/pkg/auth/jwt.go:115: ValidateToken 0.0%
api-service/pkg/auth/jwt.go:127: RefreshToken 0.0%
api-service/pkg/auth/jwt.go:138: GetTokenExpiresInSeconds 0.0%
api-service/pkg/auth/jwt.go:150: GetTokenSigningMethod 0.0%
api-service/pkg/auth/totp.go:44: GenerateTOTPSecret 0.0%
api-service/pkg/auth/totp.go:66: ValidateTOTP 0.0%
api-service/pkg/auth/totp.go:71: GenerateQRCode 0.0%
api-service/pkg/auth/totp.go:89: GenerateBackupCodes 0.0%
api-service/pkg/auth/totp.go:104: generateBackupCode 0.0%
api-service/pkg/auth/totp.go:127: ValidateBackupCode 0.0%
api-service/pkg/auth/totp.go:137: RemoveUsedBackupCode 0.0%
api-service/pkg/auth/totp.go:148: EncodeSecret 0.0%
api-service/pkg/auth/totp.go:153: DecodeSecret 0.0%
api-service/pkg/auth/totp.go:158: GenerateSimpleTOTPSecret 0.0%
api-service/pkg/auth/totp.go:167: GenerateTOTPQRCode 0.0%
api-service/pkg/auth/totp.go:172: ValidateSimpleTOTP 0.0%
api-service/pkg/crypto/aes.go:30: NewAESCrypto 100.0%
api-service/pkg/crypto/aes.go:45: Encrypt 76.9%
api-service/pkg/crypto/aes.go:76: Decrypt 84.2%
api-service/pkg/crypto/aes.go:119: RotateKey 100.0%
api-service/pkg/crypto/aes.go:125: ValidateKey 70.0%
api-service/pkg/crypto/aes.go:152: InitDefaultCrypto 0.0%
api-service/pkg/crypto/aes.go:166: GetDefaultCrypto 0.0%
api-service/pkg/database/database.go:28: parseLogLevel 0.0%
api-service/pkg/database/database.go:63: InitDB 0.0%
api-service/pkg/database/database.go:113: initSQLite 0.0%
api-service/pkg/database/database.go:149: initMySQL 0.0%
api-service/pkg/database/database.go:165: initPostgreSQL 0.0%
api-service/pkg/database/database.go:181: buildMySQLDSN 0.0%
api-service/pkg/database/database.go:224: buildPostgreSQLDSN 0.0%
api-service/pkg/database/database.go:253: configureConnectionPool 0.0%
api-service/pkg/database/database.go:278: TestDatabaseConnection 0.0%
api-service/pkg/database/database.go:300: GetDatabaseInfo 0.0%
api-service/pkg/database/errors/errors.go:50: Error 0.0%
api-service/pkg/database/errors/errors.go:56: Unwrap 0.0%
api-service/pkg/database/errors/errors.go:61: getTypeString 0.0%
api-service/pkg/database/errors/errors.go:79: IsRetryable 0.0%
api-service/pkg/database/errors/errors.go:89: GetRetryDelay 0.0%
api-service/pkg/database/errors/errors.go:106: NewSQLiteErrorClassifier 0.0%
api-service/pkg/database/errors/errors.go:111: ClassifyError 0.0%
api-service/pkg/database/errors/errors.go:129: determineErrorType 0.0%
api-service/pkg/database/errors/errors.go:194: DefaultRetryConfig 0.0%
api-service/pkg/database/errors/errors.go:215: NewSQLiteRetryHandler 0.0%
api-service/pkg/database/errors/errors.go:227: ShouldRetry 0.0%
api-service/pkg/database/errors/errors.go:256: calculateDelay 0.0%
api-service/pkg/database/errors/errors.go:273: WrapError 0.0%
api-service/pkg/database/errors/errors.go:288: containsAny 0.0%
api-service/pkg/database/influxdb.go:10: InitInfluxDB 0.0%
api-service/pkg/database/manager.go:37: NewDatabaseManagerFactory 0.0%
api-service/pkg/database/manager.go:44: CreateManager 0.0%
api-service/pkg/database/manager.go:76: initTimezonePlugin 0.0%
api-service/pkg/database/manager.go:94: initPermissionI18nHook 0.0%
api-service/pkg/database/manager.go:114: NewGenericManager 0.0%
api-service/pkg/database/manager.go:122: Query 0.0%
api-service/pkg/database/manager.go:134: Transaction 0.0%
api-service/pkg/database/manager.go:152: Create 0.0%
api-service/pkg/database/manager.go:157: Update 0.0%
api-service/pkg/database/manager.go:162: Delete 0.0%
api-service/pkg/database/manager.go:167: BatchCreate 0.0%
api-service/pkg/database/manager.go:172: GetDB 0.0%
api-service/pkg/database/manager.go:177: HealthCheck 0.0%
api-service/pkg/database/manager.go:194: Close 0.0%
api-service/pkg/database/migrations.go:43: NewMigrator 0.0%
api-service/pkg/database/migrations.go:51: AddMigration 0.0%
api-service/pkg/database/migrations.go:61: InitMigrationTable 0.0%
api-service/pkg/database/migrations.go:69: Migrate 0.0%
api-service/pkg/database/migrations.go:132: Rollback 0.0%
api-service/pkg/database/migrations.go:192: Status 0.0%
api-service/pkg/database/migrations.go:206: getCurrentBatch 0.0%
api-service/pkg/database/migrations.go:215: RunMigrations 0.0%
api-service/pkg/database/migrations.go:245: addSQLiteMigrations 0.0%
api-service/pkg/database/migrations.go:261: addMySQLMigrations 0.0%
api-service/pkg/database/migrations.go:274: addPostgresMigrations 0.0%
api-service/pkg/database/plugins/permission_hook.go:25: NewPermissionI18nHook 0.0%
api-service/pkg/database/plugins/permission_hook.go:34: RegisterPermissionI18nHook 0.0%
api-service/pkg/database/plugins/permission_hook.go:59: afterQueryCallback 0.0%
api-service/pkg/database/plugins/permission_hook.go:87: isPermissionQuery 0.0%
api-service/pkg/database/plugins/permission_hook.go:100: shouldSkipTranslation 0.0%
api-service/pkg/database/plugins/permission_hook.go:147: getUserLanguage 0.0%
api-service/pkg/database/plugins/permission_hook.go:208: getSystemLanguage 0.0%
api-service/pkg/database/plugins/permission_hook.go:235: translatePermissionNames 0.0%
api-service/pkg/database/plugins/permission_hook.go:278: translatePermissionName 0.0%
api-service/pkg/database/plugins/permission_hook.go:356: SkipPermissionI18n 0.0%
api-service/pkg/database/plugins/timezone_plugin.go:30: NewTimezonePlugin 0.0%
api-service/pkg/database/plugins/timezone_plugin.go:54: WithLogger 0.0%
api-service/pkg/database/plugins/timezone_plugin.go:62: WithCustomFields 0.0%
api-service/pkg/database/plugins/timezone_plugin.go:72: Name 0.0%
api-service/pkg/database/plugins/timezone_plugin.go:79: Initialize 0.0%
api-service/pkg/database/plugins/timezone_plugin.go:102: afterQueryCallback 0.0%
api-service/pkg/database/plugins/timezone_plugin.go:142: shouldSkipConversion 0.0%
api-service/pkg/database/plugins/timezone_plugin.go:189: getUserTimezone 0.0%
api-service/pkg/database/plugins/timezone_plugin.go:254: getSystemTimezone 0.0%
api-service/pkg/database/plugins/timezone_plugin.go:289: convertTimezoneInResult 0.0%
api-service/pkg/database/plugins/timezone_plugin.go:332: convertStructTimezone 0.0%
api-service/pkg/database/plugins/timezone_plugin.go:423: isConvertibleField 0.0%
api-service/pkg/database/plugins/timezone_plugin.go:429: convertTimeField 0.0%
api-service/pkg/database/plugins/timezone_plugin.go:466: SkipTimezoneConversion 0.0%
api-service/pkg/database/sqlite_manager.go:35: NewSQLiteManager 0.0%
api-service/pkg/database/sqlite_manager.go:51: initializePragmas 0.0%
api-service/pkg/database/sqlite_manager.go:81: WithRetry 0.0%
api-service/pkg/database/sqlite_manager.go:121: Transaction 0.0%
api-service/pkg/database/sqlite_manager.go:128: executeTransaction 0.0%
api-service/pkg/database/sqlite_manager.go:166: Query 0.0%
api-service/pkg/database/sqlite_manager.go:173: Create 0.0%
api-service/pkg/database/sqlite_manager.go:180: Update 0.0%
api-service/pkg/database/sqlite_manager.go:187: Delete 0.0%
api-service/pkg/database/sqlite_manager.go:194: BatchCreate 0.0%
api-service/pkg/database/sqlite_manager.go:201: GetDB 0.0%
api-service/pkg/database/sqlite_manager.go:206: GetActiveTransactions 0.0%
api-service/pkg/database/sqlite_manager.go:213: SetRetryHandler 0.0%
api-service/pkg/database/sqlite_manager.go:218: HealthCheck 0.0%
api-service/pkg/database/sqlite_manager.go:237: Close 0.0%
api-service/pkg/database/wrapper.go:26: InitDBWrapper 0.0%
api-service/pkg/database/wrapper.go:46: GetDBWrapper 0.0%
api-service/pkg/database/wrapper.go:51: newDBWrapper 0.0%
api-service/pkg/database/wrapper.go:81: GetManager 0.0%
api-service/pkg/database/wrapper.go:88: GetDB 0.0%
api-service/pkg/database/wrapper.go:95: Query 0.0%
api-service/pkg/database/wrapper.go:100: Transaction 0.0%
api-service/pkg/database/wrapper.go:105: Create 0.0%
api-service/pkg/database/wrapper.go:110: Update 0.0%
api-service/pkg/database/wrapper.go:115: Delete 0.0%
api-service/pkg/database/wrapper.go:120: BatchCreate 0.0%
api-service/pkg/database/wrapper.go:125: HealthCheck 0.0%
api-service/pkg/database/wrapper.go:130: Close 0.0%
api-service/pkg/database/wrapper.go:148: GetConfig 0.0%
api-service/pkg/database/wrapper.go:153: IsSQLite 0.0%
api-service/pkg/database/wrapper.go:158: GetActiveTransactions 0.0%
api-service/pkg/database/wrapper.go:166: ResetConnection 0.0%
api-service/pkg/email/email.go:56: NewEmailService 0.0%
api-service/pkg/email/email.go:66: SendVerificationEmail 0.0%
api-service/pkg/email/email.go:90: SendPasswordResetEmail 0.0%
api-service/pkg/email/email.go:114: renderTemplate 0.0%
api-service/pkg/email/email.go:139: getFieldValue 0.0%
api-service/pkg/email/email.go:179: SendEmail 0.0%
api-service/pkg/email/email.go:217: sendWithTLS 0.0%
api-service/pkg/email/email.go:277: buildMessage 0.0%
api-service/pkg/errors/errors.go:21: Error 0.0%
api-service/pkg/errors/errors.go:30: GetI18nKey 0.0%
api-service/pkg/errors/errors.go:36: NewAppError 0.0%
api-service/pkg/errors/errors.go:46: NewAppErrorWithI18n 0.0%
api-service/pkg/errors/errors.go:57: NewAppErrorWithMessage 0.0%
api-service/pkg/errors/errors.go:68: NewAppErrorWithDetails 0.0%
api-service/pkg/errors/errors.go:79: WrapError 0.0%
api-service/pkg/errors/errors.go:168: getHTTPStatusByCode 0.0%
api-service/pkg/errors/errors.go:177: getI18nKeyByCode 0.0%
api-service/pkg/errors/errors.go:186: getDefaultStatusByCodeRange 0.0%
api-service/pkg/errors/errors.go:295: GetErrCodeAndMessageKey 0.0%
api-service/pkg/errors/errors.go:308: Is 0.0%
api-service/pkg/errors/handler.go:14: ErrorHandlerMiddleware 0.0%
api-service/pkg/errors/handler.go:35: HandleError 0.0%
api-service/pkg/errors/handler.go:65: sendErrorResponse 0.0%
api-service/pkg/errors/handler.go:76: IsAppError 0.0%
api-service/pkg/i18n/i18n.go:32: Init 0.0%
api-service/pkg/i18n/i18n.go:37: InitWithConfig 0.0%
api-service/pkg/i18n/i18n.go:63: GetLocalizer 0.0%
api-service/pkg/i18n/i18n.go:80: T 0.0%
api-service/pkg/i18n/i18n.go:102: TWithPlural 0.0%
api-service/pkg/i18n/i18n.go:125: NormalizeLanguage 0.0%
api-service/pkg/i18n/i18n.go:130: normalizeLanguage 0.0%
api-service/pkg/i18n/i18n.go:152: isLanguageSupported 0.0%
api-service/pkg/i18n/i18n.go:162: GetSupportedLanguages 0.0%
api-service/pkg/i18n/i18n.go:167: DetectLanguageFromHeader 0.0%
api-service/pkg/i18n/i18n.go:192: MustT 0.0%
api-service/pkg/i18n/i18n.go:200: GetAvailableKeys 0.0%
api-service/pkg/i18n/i18n.go:229: GetLanguageInfo 0.0%
api-service/pkg/i18n/i18n.go:263: GetInstance 0.0%
api-service/pkg/i18n/i18n.go:276: NewI18n 0.0%
api-service/pkg/i18n/i18n.go:283: T 0.0%
api-service/pkg/logger/logger.go:30: String 0.0%
api-service/pkg/logger/logger.go:48: ParseLevel 71.4%
api-service/pkg/logger/logger.go:112: String 100.0%
api-service/pkg/logger/logger.go:117: Int 100.0%
api-service/pkg/logger/logger.go:122: Int64 100.0%
api-service/pkg/logger/logger.go:127: Uint 100.0%
api-service/pkg/logger/logger.go:132: Float64 100.0%
api-service/pkg/logger/logger.go:137: Bool 100.0%
api-service/pkg/logger/logger.go:142: Duration 0.0%
api-service/pkg/logger/logger.go:147: Time 0.0%
api-service/pkg/logger/logger.go:152: ErrorField 100.0%
api-service/pkg/logger/logger.go:160: Any 100.0%
api-service/pkg/logger/logger.go:168: SetDefault 0.0%
api-service/pkg/logger/logger.go:173: GetDefault 0.0%
api-service/pkg/logger/logger.go:178: Debug 0.0%
api-service/pkg/logger/logger.go:184: Info 0.0%
api-service/pkg/logger/logger.go:190: Warn 0.0%
api-service/pkg/logger/logger.go:196: Error 0.0%
api-service/pkg/logger/logger.go:202: Fatal 0.0%
api-service/pkg/logger/zap.go:54: NewZapLogger 85.7%
api-service/pkg/logger/zap.go:77: NewDefaultZapLogger 0.0%
api-service/pkg/logger/zap.go:82: NewZapLoggerWithConfig 100.0%
api-service/pkg/logger/zap.go:95: NewZapLoggerWithServerConfig 100.0%
api-service/pkg/logger/zap.go:109: createEncoderConfig 100.0%
api-service/pkg/logger/zap.go:126: createOutput 85.7%
api-service/pkg/logger/zap.go:145: createFileOutput 75.0%
api-service/pkg/logger/zap.go:192: ensureLogDir 83.3%
api-service/pkg/logger/zap.go:206: validateFilePath 92.3%
api-service/pkg/logger/zap.go:238: convertToZapLevel 85.7%
api-service/pkg/logger/zap.go:256: Debug 100.0%
api-service/pkg/logger/zap.go:261: Info 100.0%
api-service/pkg/logger/zap.go:266: Warn 100.0%
api-service/pkg/logger/zap.go:271: Error 100.0%
api-service/pkg/logger/zap.go:276: Fatal 0.0%
api-service/pkg/logger/zap.go:281: DebugContext 100.0%
api-service/pkg/logger/zap.go:286: InfoContext 100.0%
api-service/pkg/logger/zap.go:291: WarnContext 100.0%
api-service/pkg/logger/zap.go:296: ErrorContext 100.0%
api-service/pkg/logger/zap.go:301: IsDebugEnabled 100.0%
api-service/pkg/logger/zap.go:306: IsInfoEnabled 100.0%
api-service/pkg/logger/zap.go:311: IsWarnEnabled 100.0%
api-service/pkg/logger/zap.go:316: IsErrorEnabled 100.0%
api-service/pkg/logger/zap.go:321: WithFields 66.7%
api-service/pkg/logger/zap.go:333: WithContext 100.0%
api-service/pkg/logger/zap.go:338: SetLevel 100.0%
api-service/pkg/logger/zap.go:343: SetOutput 0.0%
api-service/pkg/logger/zap.go:348: convertFields 100.0%
api-service/pkg/logger/zap.go:361: convertField 72.7%
api-service/pkg/logger/zap.go:386: extractContextFields 100.0%
api-service/pkg/redis/redis.go:34: Init 0.0%
api-service/pkg/redis/redis.go:72: GetClient 0.0%
api-service/pkg/redis/redis.go:85: Close 0.0%
api-service/pkg/redis/redis.go:94: Ping 0.0%
api-service/pkg/redis/redis.go:102: Set 0.0%
api-service/pkg/redis/redis.go:108: Get 0.0%
api-service/pkg/redis/redis.go:114: GetDel 0.0%
api-service/pkg/redis/redis.go:120: Exists 0.0%
api-service/pkg/redis/redis.go:126: Del 0.0%
api-service/pkg/redis/redis.go:132: Expire 0.0%
api-service/pkg/redis/redis.go:138: TTL 0.0%
api-service/pkg/redis/redis.go:144: Incr 0.0%
api-service/pkg/redis/redis.go:150: IncrBy 0.0%
api-service/pkg/redis/redis.go:156: SetNX 0.0%
api-service/pkg/redis/redis.go:162: MGet 0.0%
api-service/pkg/redis/redis.go:168: MSet 0.0%
api-service/pkg/redis/redis.go:176: LPush 0.0%
api-service/pkg/redis/redis.go:182: RPush 0.0%
api-service/pkg/redis/redis.go:188: LPop 0.0%
api-service/pkg/redis/redis.go:194: RPop 0.0%
api-service/pkg/redis/redis.go:200: LLen 0.0%
api-service/pkg/redis/redis.go:206: LRange 0.0%
api-service/pkg/redis/redis.go:212: LIndex 0.0%
api-service/pkg/redis/redis.go:218: LSet 0.0%
api-service/pkg/redis/redis.go:224: LTrim 0.0%
api-service/pkg/redis/redis.go:232: HSet 0.0%
api-service/pkg/redis/redis.go:238: HGet 0.0%
api-service/pkg/redis/redis.go:244: HGetAll 0.0%
api-service/pkg/redis/redis.go:250: HDel 0.0%
api-service/pkg/redis/redis.go:256: HExists 0.0%
api-service/pkg/redis/redis.go:262: HLen 0.0%
api-service/pkg/redis/redis.go:268: HKeys 0.0%
api-service/pkg/redis/redis.go:274: HVals 0.0%
api-service/pkg/redis/redis.go:280: HIncrBy 0.0%
api-service/pkg/redis/redis.go:286: HMGet 0.0%
api-service/pkg/redis/redis.go:294: SAdd 0.0%
api-service/pkg/redis/redis.go:300: SMembers 0.0%
api-service/pkg/redis/redis.go:306: SIsMember 0.0%
api-service/pkg/redis/redis.go:312: SCard 0.0%
api-service/pkg/redis/redis.go:318: SRem 0.0%
api-service/pkg/redis/redis.go:324: SPop 0.0%
api-service/pkg/redis/redis.go:330: SRandMember 0.0%
api-service/pkg/redis/redis.go:336: SDiff 0.0%
api-service/pkg/redis/redis.go:342: SInter 0.0%
api-service/pkg/redis/redis.go:348: SUnion 0.0%
api-service/pkg/redis/redis.go:356: Publish 0.0%
api-service/pkg/redis/redis.go:362: Subscribe 0.0%
api-service/pkg/redis/redis.go:368: PSubscribe 0.0%
api-service/pkg/redis/redis.go:374: BLPop 0.0%
api-service/pkg/redis/redis.go:380: BRPop 0.0%
api-service/pkg/redis/redis.go:386: RPoplPush 0.0%
api-service/pkg/redis/redis.go:392: BRPopLPush 0.0%
api-service/pkg/redis/redis_keys.go:31: FormatRedisKey 0.0%
api-service/pkg/redis/redis_keys.go:36: FormatRedisKeyWithID 0.0%
api-service/pkg/utils/context.go:24: GetUserIDFromContext 81.8%
api-service/pkg/utils/context.go:52: SetUserIDInContext 100.0%
api-service/pkg/utils/context.go:58: ContextWithUserID 100.0%
api-service/pkg/utils/context.go:69: GetUserLangFromRedis 0.0%
api-service/pkg/utils/exporter.go:52: NewDBExporter 0.0%
api-service/pkg/utils/exporter.go:57: Export 0.0%
api-service/pkg/utils/exporter.go:73: validateConfig 0.0%
api-service/pkg/utils/exporter.go:90: setDefaultLimits 0.0%
api-service/pkg/utils/exporter.go:104: executeQuery 0.0%
api-service/pkg/utils/exporter.go:137: exportData 0.0%
api-service/pkg/utils/exporter.go:151: exportToJSON 0.0%
api-service/pkg/utils/exporter.go:156: exportToCSV 0.0%
api-service/pkg/utils/exporter.go:182: prepareCSVHeaders 0.0%
api-service/pkg/utils/exporter.go:191: writeCSVHeaders 0.0%
api-service/pkg/utils/exporter.go:199: writeCSVData 0.0%
api-service/pkg/utils/exporter.go:215: exportToExcel 0.0%
api-service/pkg/utils/exporter.go:245: writeEmptyExcelFile 0.0%
api-service/pkg/utils/exporter.go:254: prepareExcelHeaders 0.0%
api-service/pkg/utils/exporter.go:263: extractSortedHeaders 0.0%
api-service/pkg/utils/exporter.go:280: writeExcelHeaders 0.0%
api-service/pkg/utils/exporter.go:291: writeExcelData 0.0%
api-service/pkg/utils/exporter.go:308: saveExcelToBuffer 0.0%
api-service/pkg/utils/exporter.go:317: formatValue 0.0%
api-service/pkg/utils/exporter.go:340: columnName 0.0%
api-service/pkg/utils/exporter.go:350: GetRowCount 0.0%
api-service/pkg/utils/exporter.go:375: NewExportConfigBuilder 0.0%
api-service/pkg/utils/exporter.go:385: TableName 0.0%
api-service/pkg/utils/exporter.go:391: Fields 0.0%
api-service/pkg/utils/exporter.go:397: QueryBuilder 0.0%
api-service/pkg/utils/exporter.go:403: Format 0.0%
api-service/pkg/utils/exporter.go:409: Limit 0.0%
api-service/pkg/utils/exporter.go:415: OrderBy 0.0%
api-service/pkg/utils/exporter.go:421: Build 0.0%
api-service/pkg/utils/exporter.go:437: WhereEqual 0.0%
api-service/pkg/utils/exporter.go:444: WhereBetween 0.0%
api-service/pkg/utils/exporter.go:451: WhereLike 0.0%
api-service/pkg/utils/exporter.go:458: WhereIn 0.0%
api-service/pkg/utils/exporter.go:465: WhereNotNull 0.0%
api-service/pkg/utils/exporter.go:472: WhereIsNull 0.0%
api-service/pkg/utils/exporter.go:479: CombineQueryBuilders 0.0%
api-service/pkg/utils/network.go:26: GetRealIP 85.7%
api-service/pkg/utils/network.go:53: extractIPFromHeader 100.0%
api-service/pkg/utils/network.go:73: getFirstValidIP 85.7%
api-service/pkg/utils/network.go:87: extractIPFromForwardedHeader 83.3%
api-service/pkg/utils/network.go:109: IsPrivateIP 100.0%
api-service/pkg/utils/network.go:119: isPrivateIPv4 100.0%
api-service/pkg/utils/network.go:128: isIPv4InPrivateRange 100.0%
api-service/pkg/utils/network.go:149: isPrivateIPv6 100.0%
api-service/tools/create-user/main.go:26: main 0.0%
api-service/tools/create-user/main.go:81: createUser 0.0%
api-service/tools/create-user/main.go:142: validateRoleByCode 0.0%
api-service/tools/create-user/main.go:164: parseUsernameEmail 0.0%
api-service/tools/migrate-db/main.go:9: main 0.0%
api-service/tools/test-db/main.go:9: main 0.0%
total: (statements) 14.5%
Websoft9 Agent:
websoft9-agent/cmd/agent/main.go:20: main 0.0%
websoft9-agent/cmd/agent/main.go:65: NewAgent 100.0%
websoft9-agent/cmd/agent/main.go:78: StartMonitoring 0.0%
websoft9-agent/cmd/agent/main.go:97: StartTaskExecutor 0.0%
websoft9-agent/cmd/agent/main.go:114: StartCommunication 0.0%
websoft9-agent/cmd/agent/main.go:133: ProcessTask 100.0%
websoft9-agent/cmd/agent/main.go:142: GetSystemInfo 100.0%
websoft9-agent/internal/agent/agent.go:32: New 0.0%
websoft9-agent/internal/agent/agent.go:60: Start 0.0%
websoft9-agent/internal/agent/agent.go:88: Stop 0.0%
websoft9-agent/internal/agent/agent.go:108: startHeartbeat 0.0%
websoft9-agent/internal/agent/agent.go:128: sendHeartbeat 0.0%
websoft9-agent/internal/communication/grpc.go:24: NewGRPCClient 0.0%
websoft9-agent/internal/communication/grpc.go:31: Start 0.0%
websoft9-agent/internal/communication/grpc.go:58: Stop 0.0%
websoft9-agent/internal/communication/grpc.go:67: SendHeartbeat 0.0%
websoft9-agent/internal/communication/grpc.go:83: SendMetrics 0.0%
websoft9-agent/internal/communication/grpc.go:99: SendTaskResult 0.0%
websoft9-agent/internal/communication/grpc.go:115: ReceiveTasks 0.0%
websoft9-agent/internal/communication/manager.go:29: NewManager 0.0%
websoft9-agent/internal/communication/manager.go:56: Start 0.0%
websoft9-agent/internal/communication/manager.go:77: Stop 0.0%
websoft9-agent/internal/communication/manager.go:96: listenMessages 0.0%
websoft9-agent/internal/communication/manager.go:116: handleMessage 0.0%
websoft9-agent/internal/communication/manager.go:128: SendHeartbeat 0.0%
websoft9-agent/internal/communication/manager.go:133: SendMetrics 0.0%
websoft9-agent/internal/communication/manager.go:138: SendTaskResult 0.0%
websoft9-agent/internal/communication/manager.go:143: SendEvent 0.0%
websoft9-agent/internal/config/config.go:51: Load 0.0%
websoft9-agent/internal/config/config.go:90: setDefaults 0.0%
websoft9-agent/internal/config/config.go:118: validateConfig 0.0%
websoft9-agent/internal/monitor/container.go:47: NewContainerMonitor 0.0%
websoft9-agent/internal/monitor/container.go:54: Collect 0.0%
websoft9-agent/internal/monitor/health.go:38: NewHealthChecker 0.0%
websoft9-agent/internal/monitor/health.go:48: Check 0.0%
websoft9-agent/internal/monitor/health.go:63: getHealthChecks 0.0%
websoft9-agent/internal/monitor/health.go:77: performCheck 0.0%
websoft9-agent/internal/monitor/health.go:101: httpCheck 0.0%
websoft9-agent/internal/monitor/health.go:122: tcpCheck 0.0%
websoft9-agent/internal/monitor/health.go:132: scriptCheck 0.0%
websoft9-agent/internal/monitor/monitor.go:30: New 0.0%
websoft9-agent/internal/monitor/monitor.go:55: Start 0.0%
websoft9-agent/internal/monitor/monitor.go:85: Stop 0.0%
websoft9-agent/internal/monitor/monitor.go:93: runSystemMonitor 0.0%
websoft9-agent/internal/monitor/monitor.go:110: runContainerMonitor 0.0%
websoft9-agent/internal/monitor/monitor.go:127: runHealthChecker 0.0%
websoft9-agent/internal/monitor/system.go:60: NewSystemMonitor 0.0%
websoft9-agent/internal/monitor/system.go:67: Collect 0.0%
websoft9-agent/internal/monitor/system.go:81: collectMetrics 0.0%
websoft9-agent/internal/task/executor.go:51: NewExecutor 0.0%
websoft9-agent/internal/task/executor.go:64: Start 0.0%
websoft9-agent/internal/task/executor.go:80: Stop 0.0%
websoft9-agent/internal/task/executor.go:88: registerHandlers 0.0%
websoft9-agent/internal/task/executor.go:97: listenTasks 0.0%
websoft9-agent/internal/task/handlers.go:17: Execute 0.0%
websoft9-agent/internal/task/handlers.go:39: Execute 0.0%
websoft9-agent/internal/task/handlers.go:61: NewSystemCommandHandler 0.0%
websoft9-agent/internal/task/handlers.go:67: Execute 0.0%
websoft9-agent/internal/task/handlers.go:134: Execute 0.0%
websoft9-agent/internal/task/handlers.go:156: NewServiceManageHandler 0.0%
websoft9-agent/internal/task/handlers.go:162: Execute 0.0%
websoft9-agent/pkg/security/validator.go:27: NewCommandValidator 100.0%
websoft9-agent/pkg/security/validator.go:64: ValidateCommand 85.0%
websoft9-agent/pkg/security/validator.go:108: ValidateSystemctlAction 100.0%
websoft9-agent/pkg/security/validator.go:127: ValidateServiceName 100.0%
websoft9-agent/pkg/security/validator.go:157: NewPathValidator 100.0%
websoft9-agent/pkg/security/validator.go:169: ValidateConfigPath 94.1%
websoft9-agent/pkg/security/validator.go:211: SanitizeInput 80.0%
websoft9-agent/pkg/security/validator.go:227: ValidateTaskParams 100.0%
total: (statements) 14.3%
📊 PR Check Results Summary✅ Commit Message Check: success 🎉 All checks passed! This PR can be merged. |
zhaojing1987
pushed a commit
that referenced
this pull request
Oct 15, 2025
feat(plugins): add timezone conversion and permission i18n hooks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add timezone conversion and permission i18n hooks
变更类型
变更描述
本次提交为Websoft9平台新增了两个插件功能,主要包括时区转换插件和权限国际化钩子:
相关 Issue
测试说明
请说明如何测试这些变更:
测试步骤
检查清单
请确认以下项目:
破坏性变更
本PR包含以下破坏性变更:
pkg/response/response.go包,相关功能已迁移到错误处理模块internal/dto/common.go的目录结构,迁移至internal/dto/common/common.go