Files
clinicpro/graphify-out/cache/ast/v0.8.44/d98e311e0268ef2b6015b051d42bfedaaf9afa0a2850d7842f1e0d7600916f4a.json
T
hamed 10b0743d9a Implement ALTCHA captcha service with challenge generation and solution verification
- Added AltchaService class for managing ALTCHA captcha challenges and solutions.
- Created CaptchaController to handle API requests for generating challenges.
- Introduced CaptchaGuard for validating captcha solutions on public endpoints.
- Developed unit tests for AltchaService to ensure challenge creation and solution verification functionality.
- Implemented integration tests for the Captcha API endpoint and captcha bypass behavior when disabled.
- Added documentation for the Captcha API in the corresponding markdown file.
2026-07-10 10:31:59 +03:30

1 line
6.6 KiB
JSON

{"nodes": [{"id": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_captcha_altchaservice_php", "label": "AltchaService.php", "file_type": "code", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L1"}, {"id": "captcha_altchaservice_altchaservice", "label": "AltchaService", "file_type": "code", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L17"}, {"id": "altcha", "label": "Altcha", "file_type": "code", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L19"}, {"id": "captcha_altchaservice_altchaservice_construct", "label": ".__construct()", "file_type": "code", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L21"}, {"id": "captcha_altchaservice_altchaservice_enabled", "label": ".enabled()", "file_type": "code", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L31"}, {"id": "captcha_altchaservice_altchaservice_createchallenge", "label": ".createChallenge()", "file_type": "code", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L41"}, {"id": "captcha_altchaservice_altchaservice_verifysolution", "label": ".verifySolution()", "file_type": "code", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L61"}, {"id": "captcha_altchaservice_altchaservice_consumeonce", "label": ".consumeOnce()", "file_type": "code", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L74"}], "edges": [{"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_captcha_altchaservice_php", "target": "altcha", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L5", "weight": 1.0}, {"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_captcha_altchaservice_php", "target": "challengeoptions", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L6", "weight": 1.0}, {"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_captcha_altchaservice_php", "target": "cacheitempoolinterface", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L7", "weight": 1.0}, {"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_shared_captcha_altchaservice_php", "target": "captcha_altchaservice_altchaservice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L17", "weight": 1.0}, {"source": "captcha_altchaservice_altchaservice", "target": "altcha", "relation": "references", "confidence": "EXTRACTED", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L19", "weight": 1.0, "context": "field"}, {"source": "captcha_altchaservice_altchaservice", "target": "captcha_altchaservice_altchaservice_construct", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L21", "weight": 1.0}, {"source": "captcha_altchaservice_altchaservice", "target": "captcha_altchaservice_altchaservice_enabled", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L31", "weight": 1.0}, {"source": "captcha_altchaservice_altchaservice", "target": "captcha_altchaservice_altchaservice_createchallenge", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L41", "weight": 1.0}, {"source": "captcha_altchaservice_altchaservice", "target": "captcha_altchaservice_altchaservice_verifysolution", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L61", "weight": 1.0}, {"source": "captcha_altchaservice_altchaservice", "target": "captcha_altchaservice_altchaservice_consumeonce", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L74", "weight": 1.0}, {"source": "captcha_altchaservice_altchaservice_verifysolution", "target": "captcha_altchaservice_altchaservice_consumeonce", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "src/Shared/Captcha/AltchaService.php", "source_location": "L67", "weight": 1.0}], "raw_calls": [{"caller_nid": "captcha_altchaservice_altchaservice_createchallenge", "callee": "add", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Shared/Captcha/AltchaService.php", "source_location": "L45", "receiver": null}, {"caller_nid": "captcha_altchaservice_altchaservice_consumeonce", "callee": "json_decode", "is_member_call": false, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Shared/Captcha/AltchaService.php", "source_location": "L76", "receiver": null}, {"caller_nid": "captcha_altchaservice_altchaservice_consumeonce", "callee": "base64_decode", "is_member_call": false, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Shared/Captcha/AltchaService.php", "source_location": "L76", "receiver": null}, {"caller_nid": "captcha_altchaservice_altchaservice_consumeonce", "callee": "is_array", "is_member_call": false, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Shared/Captcha/AltchaService.php", "source_location": "L77", "receiver": null}, {"caller_nid": "captcha_altchaservice_altchaservice_consumeonce", "callee": "is_string", "is_member_call": false, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Shared/Captcha/AltchaService.php", "source_location": "L78", "receiver": null}, {"caller_nid": "captcha_altchaservice_altchaservice_consumeonce", "callee": "getItem", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Shared/Captcha/AltchaService.php", "source_location": "L82", "receiver": null}, {"caller_nid": "captcha_altchaservice_altchaservice_consumeonce", "callee": "isHit", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Shared/Captcha/AltchaService.php", "source_location": "L83", "receiver": null}, {"caller_nid": "captcha_altchaservice_altchaservice_consumeonce", "callee": "expiresAfter", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Shared/Captcha/AltchaService.php", "source_location": "L87", "receiver": null}, {"caller_nid": "captcha_altchaservice_altchaservice_consumeonce", "callee": "save", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Shared/Captcha/AltchaService.php", "source_location": "L88", "receiver": null}]}