Refactor SMS Provider Classes to Support Nullable API Key and Sender
- Updated KavehNegarProvider and RanginehProvider constructors to accept nullable API key and sender parameters. - Adjusted methods in both providers to handle cases where the API key or sender may not be set, preventing potential TypeErrors. - Modified community IDs in graph.json for various entities to reflect updated associations. - Updated manifest.json with new modification times and AST hashes for KavehNegarProvider and RanginehProvider. - Added new AST cache files for KavehNegarProvider and RanginehProvider reflecting the latest structure and relationships.
This commit is contained in:
@@ -666,6 +666,7 @@
|
||||
"664": "Community 664",
|
||||
"665": "Community 665",
|
||||
"666": "Community 666",
|
||||
"667": "Community 667",
|
||||
"668": "Community 668",
|
||||
"669": "Community 669",
|
||||
"670": "Community 670",
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
# Graph Report - clinicpro (2026-06-29)
|
||||
|
||||
## Corpus Check
|
||||
- 646 files · ~446,886 words
|
||||
- 646 files · ~446,941 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 8212 nodes · 11323 edges · 671 communities (549 shown, 122 thin omitted)
|
||||
- 8212 nodes · 11323 edges · 672 communities (551 shown, 121 thin omitted)
|
||||
- Extraction: 98% EXTRACTED · 2% INFERRED · 0% AMBIGUOUS · INFERRED: 261 edges (avg confidence: 0.8)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `97958ecc`
|
||||
- Built from commit: `afb5b282`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
@@ -668,6 +668,7 @@
|
||||
- [[_COMMUNITY_Community 664|Community 664]]
|
||||
- [[_COMMUNITY_Community 665|Community 665]]
|
||||
- [[_COMMUNITY_Community 666|Community 666]]
|
||||
- [[_COMMUNITY_Community 667|Community 667]]
|
||||
- [[_COMMUNITY_Community 668|Community 668]]
|
||||
- [[_COMMUNITY_Community 669|Community 669]]
|
||||
- [[_COMMUNITY_Community 671|Community 671]]
|
||||
@@ -699,7 +700,7 @@
|
||||
## Import Cycles
|
||||
- None detected.
|
||||
|
||||
## Communities (671 total, 122 thin omitted)
|
||||
## Communities (672 total, 121 thin omitted)
|
||||
|
||||
### Community 0 - "Community 0"
|
||||
Cohesion: 0.05
|
||||
@@ -915,7 +916,7 @@ Nodes (26): الزامات UI, باگفیکس صفحه نوبتها, با
|
||||
|
||||
### Community 53 - "Community 53"
|
||||
Cohesion: 0.10
|
||||
Nodes (14): ClaimItemRepository, ClinicStaffRepository, PreRegistrationRepository, SessionServiceRepository, SmsSettingsRepository, ServiceEntityRepository, SmsSettings, ManagerRegistry (+6 more)
|
||||
Nodes (13): ClaimItemRepository, PreRegistrationRepository, SessionServiceRepository, SiteConfigRepository, SmsSettingsRepository, ServiceEntityRepository, SmsSettings, ManagerRegistry (+5 more)
|
||||
|
||||
### Community 54 - "Community 54"
|
||||
Cohesion: 0.10
|
||||
@@ -1035,7 +1036,7 @@ Nodes (29): devDependencies, @babel/core, @babel/preset-env, @babel/preset-react
|
||||
|
||||
### Community 86 - "Community 86"
|
||||
Cohesion: 0.07
|
||||
Nodes (14): AppointmentExpiryServiceTest, LowTierFixesTest, SendCodeMobileRateLimitTest, ClaimsListPaginationTest, ServiceItemStaffOwnershipTest, EntityManagerInterface, KernelBrowser, CommentPaginationTest (+6 more)
|
||||
Nodes (13): AppointmentExpiryServiceTest, LowTierFixesTest, SendCodeMobileRateLimitTest, ClaimsListPaginationTest, ServiceItemStaffOwnershipTest, EntityManagerInterface, KernelBrowser, CommentPaginationTest (+5 more)
|
||||
|
||||
### Community 87 - "Community 87"
|
||||
Cohesion: 0.10
|
||||
@@ -1475,7 +1476,7 @@ Nodes (13): Endpoint ها, PATCH /api/v1/secretary/{uuid}, POST /api/v1/secretar
|
||||
|
||||
### Community 201 - "Community 201"
|
||||
Cohesion: 0.15
|
||||
Nodes (13): Admin API, Clinic Invitation Management, GET `/api/v1/admin/secretaries`, GET /api/v1/admin/settings, GET `/api/v1/admin/settlements`, PATCH /api/v1/admin/settings, Query Parameters, Query Parameters (+5 more)
|
||||
Nodes (13): Admin API, Clinic Invitation Management, GET `/api/v1/admin/payments`, GET /api/v1/admin/settings, GET `/api/v1/admin/settlements`, PATCH /api/v1/admin/settings, Payment Management, Query Parameters (+5 more)
|
||||
|
||||
### Community 202 - "Community 202"
|
||||
Cohesion: 0.15
|
||||
@@ -1855,7 +1856,7 @@ Nodes (16): آمادهسازی پروژه ClinicPro برای دیپلوی ر
|
||||
|
||||
### Community 304 - "Community 304"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): 29. 🟢 `GET` clinic list 🆕, 30. 🟢 `GET` get 🆕, 36. 🟢 `GET` get my rate, 6. کلینیک (Clinic), هدرهای اضافی, پارامترهای Query, پاسخها, پاسخها (+1 more)
|
||||
Nodes (9): 29. 🟢 `GET` clinic list 🆕, 30. 🟢 `GET` get 🆕, 33. 🔵 `POST` image_clinic, 6. کلینیک (Clinic), هدرهای اضافی, پارامترهای Query, پاسخها, پاسخها (+1 more)
|
||||
|
||||
### Community 306 - "Community 306"
|
||||
Cohesion: 0.07
|
||||
@@ -2205,9 +2206,13 @@ Nodes (4): initiate(), verify(), PaymentInitResult, PaymentVerifyResult
|
||||
Cohesion: 0.38
|
||||
Nodes (5): Rate, RateRepository, Doctor, ManagerRegistry, User
|
||||
|
||||
### Community 405 - "Community 405"
|
||||
Cohesion: 0.47
|
||||
Nodes (3): CommissionService, Payment, Representation
|
||||
|
||||
### Community 406 - "Community 406"
|
||||
Cohesion: 0.23
|
||||
Nodes (5): AbstractMigration, Schema, Version20260609134112, Schema, Version20260625135132
|
||||
Nodes (5): AbstractMigration, Schema, Version20260609133546, Schema, Version20260625135132
|
||||
|
||||
### Community 418 - "Community 418"
|
||||
Cohesion: 0.17
|
||||
@@ -2446,8 +2451,8 @@ Cohesion: 0.40
|
||||
Nodes (4): ساختار فایلها, معماری — تسک ۱۶: ماژول داشبورد دکتر, نمودار جریان, کوئری درآمد سالانه (بر اساس ماههای شمسی)
|
||||
|
||||
### Community 522 - "Community 522"
|
||||
Cohesion: 0.20
|
||||
Nodes (7): WalletTransactionRepository, CommissionService, ManagerRegistry, User, Payment, Representation, WalletTransaction
|
||||
Cohesion: 0.24
|
||||
Nodes (5): WalletTransactionRepository, WalletTransactionsPaginationTest, ManagerRegistry, User, WalletTransaction
|
||||
|
||||
### Community 523 - "Community 523"
|
||||
Cohesion: 0.43
|
||||
@@ -2709,6 +2714,10 @@ Nodes (3): نقاط ضعف, نقاط قوت, ۶. تحلیل API Design
|
||||
Cohesion: 0.40
|
||||
Nodes (5): DELETE `/api/v1/billing/tenant-insurances/{uuid}`, GET `/api/v1/billing/tenant-insurances`, PATCH `/api/v1/billing/tenant-insurances/{uuid}`, POST `/api/v1/billing/tenant-insurances`, TenantInsurance — قراردادهای بیمهی tenant (فاز ۱ سیستم صورتحساب)
|
||||
|
||||
### Community 607 - "Community 607"
|
||||
Cohesion: 0.39
|
||||
Nodes (3): ClinicStaffRepository, ClinicStaff, ManagerRegistry
|
||||
|
||||
### Community 608 - "Community 608"
|
||||
Cohesion: 0.40
|
||||
Nodes (5): 37. 🔵 `POST` post, Request Body, مثال Request, هدرهای اضافی, پاسخها
|
||||
@@ -2769,10 +2778,6 @@ Nodes (3): InvoiceItemRepository, InvoiceItem, ManagerRegistry
|
||||
Cohesion: 0.40
|
||||
Nodes (5): ۲.۸ تنظیمات نوبت (Appointment Settings), ۲.۸.۱ برنامه هفتگی (Weekly Schedule), ۲.۸.۲ تعطیلات (Holidays), ۲.۸.۳ لغو تعطیل (Date Override), ۲.۸.۴ الگوریتم محاسبه اسلاتهای خالی
|
||||
|
||||
### Community 649 - "Community 649"
|
||||
Cohesion: 0.50
|
||||
Nodes (4): GET `/api/v1/admin/payments`, Payment Management, Query Parameters, Response `200`
|
||||
|
||||
### Community 650 - "Community 650"
|
||||
Cohesion: 0.40
|
||||
Nodes (3): Props, StatTone, TONE
|
||||
@@ -2822,8 +2827,8 @@ Cohesion: 0.50
|
||||
Nodes (4): ۲.۱۳ نظرات، لایک و امتیازدهی, ۲.۱۳.۱ نظر (Comment), ۲.۱۳.۲ لایک (Like), ۲.۱۳.۳ امتیاز (Rate)
|
||||
|
||||
### Community 662 - "Community 662"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): 33. 🔵 `POST` image_clinic, هدرهای اضافی, پاسخها
|
||||
Cohesion: 0.50
|
||||
Nodes (4): GET `/api/v1/admin/secretaries`, Query Parameters, Response `200`, Secretary Management
|
||||
|
||||
### Community 664 - "Community 664"
|
||||
Cohesion: 0.67
|
||||
@@ -2833,6 +2838,10 @@ Nodes (3): 42. 🔴 `DELETE` delete, هدرهای اضافی, پاسخها
|
||||
Cohesion: 0.67
|
||||
Nodes (3): 43. 🟢 `GET` get, هدرهای اضافی, پاسخها
|
||||
|
||||
### Community 667 - "Community 667"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): 36. 🟢 `GET` get my rate, هدرهای اضافی, پاسخها
|
||||
|
||||
### Community 671 - "Community 671"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): 34. 🔵 `POST` image logo, هدرهای اضافی, پاسخها
|
||||
@@ -2840,7 +2849,7 @@ Nodes (3): 34. 🔵 `POST` image logo, هدرهای اضافی, پاسخها
|
||||
## Knowledge Gaps
|
||||
- **3533 isolated node(s):** `ALLOWED_ROLES`, `Pricing`, `TenantInsurance`, `CoverageRow`, `Draft` (+3528 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **122 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
- **121 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
|
||||
## Suggested Questions
|
||||
_Questions this graph is uniquely positioned to answer:_
|
||||
|
||||
graphify-out/cache/ast/v0.8.44/ac2d232f590f5ba05c660998266798d71f9878fccb125c0f9252394305ad2334.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_sms_provider_ranginehprovider_php", "label": "RanginehProvider.php", "file_type": "code", "source_file": "src/Sms/Provider/RanginehProvider.php", "source_location": "L1"}, {"id": "provider_ranginehprovider_ranginehprovider", "label": "RanginehProvider", "file_type": "code", "source_file": "src/Sms/Provider/RanginehProvider.php", "source_location": "L7"}, {"id": "smsproviderinterface", "label": "SmsProviderInterface", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "provider_ranginehprovider_ranginehprovider_construct", "label": ".__construct()", "file_type": "code", "source_file": "src/Sms/Provider/RanginehProvider.php", "source_location": "L11"}, {"id": "provider_ranginehprovider_ranginehprovider_getname", "label": ".getName()", "file_type": "code", "source_file": "src/Sms/Provider/RanginehProvider.php", "source_location": "L19"}, {"id": "provider_ranginehprovider_ranginehprovider_send", "label": ".send()", "file_type": "code", "source_file": "src/Sms/Provider/RanginehProvider.php", "source_location": "L21"}, {"id": "provider_ranginehprovider_ranginehprovider_sendtemplate", "label": ".sendTemplate()", "file_type": "code", "source_file": "src/Sms/Provider/RanginehProvider.php", "source_location": "L35"}], "edges": [{"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_sms_provider_ranginehprovider_php", "target": "httpclientinterface", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/Sms/Provider/RanginehProvider.php", "source_location": "L5", "weight": 1.0}, {"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_sms_provider_ranginehprovider_php", "target": "provider_ranginehprovider_ranginehprovider", "relation": "contains", "confidence": "EXTRACTED", "source_file": "src/Sms/Provider/RanginehProvider.php", "source_location": "L7", "weight": 1.0}, {"source": "provider_ranginehprovider_ranginehprovider", "target": "smsproviderinterface", "relation": "implements", "confidence": "EXTRACTED", "source_file": "src/Sms/Provider/RanginehProvider.php", "source_location": "L7", "weight": 1.0}, {"source": "provider_ranginehprovider_ranginehprovider", "target": "provider_ranginehprovider_ranginehprovider_construct", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Sms/Provider/RanginehProvider.php", "source_location": "L11", "weight": 1.0}, {"source": "provider_ranginehprovider_ranginehprovider", "target": "provider_ranginehprovider_ranginehprovider_getname", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Sms/Provider/RanginehProvider.php", "source_location": "L19", "weight": 1.0}, {"source": "provider_ranginehprovider_ranginehprovider", "target": "provider_ranginehprovider_ranginehprovider_send", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Sms/Provider/RanginehProvider.php", "source_location": "L21", "weight": 1.0}, {"source": "provider_ranginehprovider_ranginehprovider", "target": "provider_ranginehprovider_ranginehprovider_sendtemplate", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Sms/Provider/RanginehProvider.php", "source_location": "L35", "weight": 1.0}], "raw_calls": [{"caller_nid": "provider_ranginehprovider_ranginehprovider_send", "callee": "request", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Sms/Provider/RanginehProvider.php", "source_location": "L24", "receiver": null}, {"caller_nid": "provider_ranginehprovider_ranginehprovider_send", "callee": "getStatusCode", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Sms/Provider/RanginehProvider.php", "source_location": "L29", "receiver": null}, {"caller_nid": "provider_ranginehprovider_ranginehprovider_sendtemplate", "callee": "request", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Sms/Provider/RanginehProvider.php", "source_location": "L38", "receiver": null}, {"caller_nid": "provider_ranginehprovider_ranginehprovider_sendtemplate", "callee": "getStatusCode", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Sms/Provider/RanginehProvider.php", "source_location": "L47", "receiver": null}]}
|
||||
graphify-out/cache/ast/v0.8.44/dcd204ae53c9cc2769826f521873686d8d02366c604e928884a96e1c84dce906.json
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+62
-62
@@ -8562,7 +8562,7 @@
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "migrations_version20260609133546",
|
||||
"community": 405,
|
||||
"community": 406,
|
||||
"norm_label": "version20260609133546.php"
|
||||
},
|
||||
{
|
||||
@@ -8572,7 +8572,7 @@
|
||||
"source_location": "L13",
|
||||
"_origin": "ast",
|
||||
"id": "migrations_version20260609133546_version20260609133546",
|
||||
"community": 405,
|
||||
"community": 406,
|
||||
"norm_label": "version20260609133546"
|
||||
},
|
||||
{
|
||||
@@ -8582,7 +8582,7 @@
|
||||
"source_location": "L15",
|
||||
"_origin": "ast",
|
||||
"id": "migrations_version20260609133546_version20260609133546_getdescription",
|
||||
"community": 405,
|
||||
"community": 406,
|
||||
"norm_label": ".getdescription()"
|
||||
},
|
||||
{
|
||||
@@ -8592,7 +8592,7 @@
|
||||
"source_location": "L20",
|
||||
"_origin": "ast",
|
||||
"id": "migrations_version20260609133546_version20260609133546_up",
|
||||
"community": 405,
|
||||
"community": 406,
|
||||
"norm_label": ".up()"
|
||||
},
|
||||
{
|
||||
@@ -8602,7 +8602,7 @@
|
||||
"source_location": "L20",
|
||||
"_origin": "ast",
|
||||
"id": "migrations_version20260609133546_php_schema",
|
||||
"community": 405,
|
||||
"community": 406,
|
||||
"norm_label": "schema"
|
||||
},
|
||||
{
|
||||
@@ -8612,7 +8612,7 @@
|
||||
"source_location": "L28",
|
||||
"_origin": "ast",
|
||||
"id": "migrations_version20260609133546_version20260609133546_down",
|
||||
"community": 405,
|
||||
"community": 406,
|
||||
"norm_label": ".down()"
|
||||
},
|
||||
{
|
||||
@@ -8622,7 +8622,7 @@
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "migrations_version20260609134112",
|
||||
"community": 406,
|
||||
"community": 649,
|
||||
"norm_label": "version20260609134112.php"
|
||||
},
|
||||
{
|
||||
@@ -8632,7 +8632,7 @@
|
||||
"source_location": "L13",
|
||||
"_origin": "ast",
|
||||
"id": "migrations_version20260609134112_version20260609134112",
|
||||
"community": 406,
|
||||
"community": 649,
|
||||
"norm_label": "version20260609134112"
|
||||
},
|
||||
{
|
||||
@@ -8642,7 +8642,7 @@
|
||||
"source_location": "L15",
|
||||
"_origin": "ast",
|
||||
"id": "migrations_version20260609134112_version20260609134112_getdescription",
|
||||
"community": 406,
|
||||
"community": 649,
|
||||
"norm_label": ".getdescription()"
|
||||
},
|
||||
{
|
||||
@@ -8652,7 +8652,7 @@
|
||||
"source_location": "L20",
|
||||
"_origin": "ast",
|
||||
"id": "migrations_version20260609134112_version20260609134112_up",
|
||||
"community": 406,
|
||||
"community": 649,
|
||||
"norm_label": ".up()"
|
||||
},
|
||||
{
|
||||
@@ -8662,7 +8662,7 @@
|
||||
"source_location": "L20",
|
||||
"_origin": "ast",
|
||||
"id": "migrations_version20260609134112_php_schema",
|
||||
"community": 406,
|
||||
"community": 649,
|
||||
"norm_label": "schema"
|
||||
},
|
||||
{
|
||||
@@ -8672,7 +8672,7 @@
|
||||
"source_location": "L31",
|
||||
"_origin": "ast",
|
||||
"id": "migrations_version20260609134112_version20260609134112_down",
|
||||
"community": 406,
|
||||
"community": 649,
|
||||
"norm_label": ".down()"
|
||||
},
|
||||
{
|
||||
@@ -22682,7 +22682,7 @@
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "repository_siteconfigrepository",
|
||||
"community": 607,
|
||||
"community": 53,
|
||||
"norm_label": "siteconfigrepository.php"
|
||||
},
|
||||
{
|
||||
@@ -22692,7 +22692,7 @@
|
||||
"source_location": "L9",
|
||||
"_origin": "ast",
|
||||
"id": "repository_siteconfigrepository_siteconfigrepository",
|
||||
"community": 607,
|
||||
"community": 53,
|
||||
"norm_label": "siteconfigrepository"
|
||||
},
|
||||
{
|
||||
@@ -22702,7 +22702,7 @@
|
||||
"source_location": "L40",
|
||||
"_origin": "ast",
|
||||
"id": "repository_siteconfigrepository_siteconfigrepository_construct",
|
||||
"community": 607,
|
||||
"community": 53,
|
||||
"norm_label": ".__construct()"
|
||||
},
|
||||
{
|
||||
@@ -22712,7 +22712,7 @@
|
||||
"source_location": "L40",
|
||||
"_origin": "ast",
|
||||
"id": "src_config_repository_siteconfigrepository_php_managerregistry",
|
||||
"community": 607,
|
||||
"community": 53,
|
||||
"norm_label": "managerregistry"
|
||||
},
|
||||
{
|
||||
@@ -22722,7 +22722,7 @@
|
||||
"source_location": "L45",
|
||||
"_origin": "ast",
|
||||
"id": "repository_siteconfigrepository_siteconfigrepository_get",
|
||||
"community": 607,
|
||||
"community": 53,
|
||||
"norm_label": ".get()"
|
||||
},
|
||||
{
|
||||
@@ -22732,7 +22732,7 @@
|
||||
"source_location": "L54",
|
||||
"_origin": "ast",
|
||||
"id": "repository_siteconfigrepository_siteconfigrepository_getall",
|
||||
"community": 607,
|
||||
"community": 53,
|
||||
"norm_label": ".getall()"
|
||||
},
|
||||
{
|
||||
@@ -22742,7 +22742,7 @@
|
||||
"source_location": "L70",
|
||||
"_origin": "ast",
|
||||
"id": "repository_siteconfigrepository_siteconfigrepository_set",
|
||||
"community": 607,
|
||||
"community": 53,
|
||||
"norm_label": ".set()"
|
||||
},
|
||||
{
|
||||
@@ -33112,7 +33112,7 @@
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "service_commissionservice",
|
||||
"community": 522,
|
||||
"community": 405,
|
||||
"norm_label": "commissionservice.php"
|
||||
},
|
||||
{
|
||||
@@ -33122,7 +33122,7 @@
|
||||
"source_location": "L20",
|
||||
"_origin": "ast",
|
||||
"id": "service_commissionservice_commissionservice",
|
||||
"community": 522,
|
||||
"community": 405,
|
||||
"norm_label": "commissionservice"
|
||||
},
|
||||
{
|
||||
@@ -33132,7 +33132,7 @@
|
||||
"source_location": "L22",
|
||||
"_origin": "ast",
|
||||
"id": "service_commissionservice_commissionservice_construct",
|
||||
"community": 522,
|
||||
"community": 405,
|
||||
"norm_label": ".__construct()"
|
||||
},
|
||||
{
|
||||
@@ -33142,7 +33142,7 @@
|
||||
"source_location": "L35",
|
||||
"_origin": "ast",
|
||||
"id": "service_commissionservice_commissionservice_processappointment",
|
||||
"community": 522,
|
||||
"community": 405,
|
||||
"norm_label": ".processappointment()"
|
||||
},
|
||||
{
|
||||
@@ -33152,7 +33152,7 @@
|
||||
"source_location": "L35",
|
||||
"_origin": "ast",
|
||||
"id": "src_settlement_service_commissionservice_php_payment",
|
||||
"community": 522,
|
||||
"community": 405,
|
||||
"norm_label": "payment"
|
||||
},
|
||||
{
|
||||
@@ -33162,7 +33162,7 @@
|
||||
"source_location": "L56",
|
||||
"_origin": "ast",
|
||||
"id": "service_commissionservice_commissionservice_processsubscription",
|
||||
"community": 522,
|
||||
"community": 405,
|
||||
"norm_label": ".processsubscription()"
|
||||
},
|
||||
{
|
||||
@@ -33172,7 +33172,7 @@
|
||||
"source_location": "L73",
|
||||
"_origin": "ast",
|
||||
"id": "service_commissionservice_commissionservice_resolverep",
|
||||
"community": 522,
|
||||
"community": 405,
|
||||
"norm_label": ".resolverep()"
|
||||
},
|
||||
{
|
||||
@@ -33182,7 +33182,7 @@
|
||||
"source_location": "L73",
|
||||
"_origin": "ast",
|
||||
"id": "src_settlement_service_commissionservice_php_representation",
|
||||
"community": 522,
|
||||
"community": 405,
|
||||
"norm_label": "representation"
|
||||
},
|
||||
{
|
||||
@@ -33192,7 +33192,7 @@
|
||||
"source_location": "L80",
|
||||
"_origin": "ast",
|
||||
"id": "service_commissionservice_commissionservice_settle",
|
||||
"community": 522,
|
||||
"community": 405,
|
||||
"norm_label": ".settle()"
|
||||
},
|
||||
{
|
||||
@@ -35349,7 +35349,7 @@
|
||||
"label": ".key()",
|
||||
"file_type": "code",
|
||||
"source_file": "src/Sms/Provider/KavehNegarProvider.php",
|
||||
"source_location": "L19",
|
||||
"source_location": "L21",
|
||||
"_origin": "ast",
|
||||
"id": "provider_kavehnegarprovider_kavehnegarprovider_key",
|
||||
"community": 82,
|
||||
@@ -35359,7 +35359,7 @@
|
||||
"label": ".sender()",
|
||||
"file_type": "code",
|
||||
"source_file": "src/Sms/Provider/KavehNegarProvider.php",
|
||||
"source_location": "L20",
|
||||
"source_location": "L22",
|
||||
"_origin": "ast",
|
||||
"id": "provider_kavehnegarprovider_kavehnegarprovider_sender",
|
||||
"community": 82,
|
||||
@@ -35369,7 +35369,7 @@
|
||||
"label": ".getName()",
|
||||
"file_type": "code",
|
||||
"source_file": "src/Sms/Provider/KavehNegarProvider.php",
|
||||
"source_location": "L22",
|
||||
"source_location": "L24",
|
||||
"_origin": "ast",
|
||||
"id": "provider_kavehnegarprovider_kavehnegarprovider_getname",
|
||||
"community": 82,
|
||||
@@ -35379,7 +35379,7 @@
|
||||
"label": ".send()",
|
||||
"file_type": "code",
|
||||
"source_file": "src/Sms/Provider/KavehNegarProvider.php",
|
||||
"source_location": "L24",
|
||||
"source_location": "L26",
|
||||
"_origin": "ast",
|
||||
"id": "provider_kavehnegarprovider_kavehnegarprovider_send",
|
||||
"community": 82,
|
||||
@@ -35389,7 +35389,7 @@
|
||||
"label": ".sendTemplate()",
|
||||
"file_type": "code",
|
||||
"source_file": "src/Sms/Provider/KavehNegarProvider.php",
|
||||
"source_location": "L44",
|
||||
"source_location": "L46",
|
||||
"_origin": "ast",
|
||||
"id": "provider_kavehnegarprovider_kavehnegarprovider_sendtemplate",
|
||||
"community": 82,
|
||||
@@ -35429,7 +35429,7 @@
|
||||
"label": ".getName()",
|
||||
"file_type": "code",
|
||||
"source_file": "src/Sms/Provider/RanginehProvider.php",
|
||||
"source_location": "L17",
|
||||
"source_location": "L19",
|
||||
"_origin": "ast",
|
||||
"id": "provider_ranginehprovider_ranginehprovider_getname",
|
||||
"community": 82,
|
||||
@@ -35439,7 +35439,7 @@
|
||||
"label": ".send()",
|
||||
"file_type": "code",
|
||||
"source_file": "src/Sms/Provider/RanginehProvider.php",
|
||||
"source_location": "L19",
|
||||
"source_location": "L21",
|
||||
"_origin": "ast",
|
||||
"id": "provider_ranginehprovider_ranginehprovider_send",
|
||||
"community": 82,
|
||||
@@ -35449,7 +35449,7 @@
|
||||
"label": ".sendTemplate()",
|
||||
"file_type": "code",
|
||||
"source_file": "src/Sms/Provider/RanginehProvider.php",
|
||||
"source_location": "L33",
|
||||
"source_location": "L35",
|
||||
"_origin": "ast",
|
||||
"id": "provider_ranginehprovider_ranginehprovider_sendtemplate",
|
||||
"community": 82,
|
||||
@@ -36982,7 +36982,7 @@
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "repository_clinicstaffrepository",
|
||||
"community": 53,
|
||||
"community": 607,
|
||||
"norm_label": "clinicstaffrepository.php"
|
||||
},
|
||||
{
|
||||
@@ -36992,7 +36992,7 @@
|
||||
"source_location": "L9",
|
||||
"_origin": "ast",
|
||||
"id": "repository_clinicstaffrepository_clinicstaffrepository",
|
||||
"community": 53,
|
||||
"community": 607,
|
||||
"norm_label": "clinicstaffrepository"
|
||||
},
|
||||
{
|
||||
@@ -37002,7 +37002,7 @@
|
||||
"source_location": "L11",
|
||||
"_origin": "ast",
|
||||
"id": "repository_clinicstaffrepository_clinicstaffrepository_construct",
|
||||
"community": 53,
|
||||
"community": 607,
|
||||
"norm_label": ".__construct()"
|
||||
},
|
||||
{
|
||||
@@ -37012,7 +37012,7 @@
|
||||
"source_location": "L11",
|
||||
"_origin": "ast",
|
||||
"id": "src_staff_repository_clinicstaffrepository_php_managerregistry",
|
||||
"community": 53,
|
||||
"community": 607,
|
||||
"norm_label": "managerregistry"
|
||||
},
|
||||
{
|
||||
@@ -37022,7 +37022,7 @@
|
||||
"source_location": "L16",
|
||||
"_origin": "ast",
|
||||
"id": "repository_clinicstaffrepository_clinicstaffrepository_findbyuuid",
|
||||
"community": 53,
|
||||
"community": 607,
|
||||
"norm_label": ".findbyuuid()"
|
||||
},
|
||||
{
|
||||
@@ -37032,7 +37032,7 @@
|
||||
"source_location": "L16",
|
||||
"_origin": "ast",
|
||||
"id": "src_staff_repository_clinicstaffrepository_php_clinicstaff",
|
||||
"community": 53,
|
||||
"community": 607,
|
||||
"norm_label": "clinicstaff"
|
||||
},
|
||||
{
|
||||
@@ -37042,7 +37042,7 @@
|
||||
"source_location": "L21",
|
||||
"_origin": "ast",
|
||||
"id": "repository_clinicstaffrepository_clinicstaffrepository_findbyentity",
|
||||
"community": 53,
|
||||
"community": 607,
|
||||
"norm_label": ".findbyentity()"
|
||||
},
|
||||
{
|
||||
@@ -37052,7 +37052,7 @@
|
||||
"source_location": "L37",
|
||||
"_origin": "ast",
|
||||
"id": "repository_clinicstaffrepository_clinicstaffrepository_save",
|
||||
"community": 53,
|
||||
"community": 607,
|
||||
"norm_label": ".save()"
|
||||
},
|
||||
{
|
||||
@@ -41092,7 +41092,7 @@
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "settlement_wallettransactionspaginationtest",
|
||||
"community": 86,
|
||||
"community": 522,
|
||||
"norm_label": "wallettransactionspaginationtest.php"
|
||||
},
|
||||
{
|
||||
@@ -41102,7 +41102,7 @@
|
||||
"source_location": "L12",
|
||||
"_origin": "ast",
|
||||
"id": "settlement_wallettransactionspaginationtest_wallettransactionspaginationtest",
|
||||
"community": 86,
|
||||
"community": 522,
|
||||
"norm_label": "wallettransactionspaginationtest"
|
||||
},
|
||||
{
|
||||
@@ -41112,7 +41112,7 @@
|
||||
"source_location": "L14",
|
||||
"_origin": "ast",
|
||||
"id": "settlement_wallettransactionspaginationtest_wallettransactionspaginationtest_testpaginatesandreportstotals",
|
||||
"community": 86,
|
||||
"community": 522,
|
||||
"norm_label": ".testpaginatesandreportstotals()"
|
||||
},
|
||||
{
|
||||
@@ -58522,7 +58522,7 @@
|
||||
"source_location": "L3153",
|
||||
"_origin": "ast",
|
||||
"id": "docs_clinicpro_manual_v2_33_post_image_clinic",
|
||||
"community": 662,
|
||||
"community": 304,
|
||||
"norm_label": "33. \ud83d\udd35 `post` image_clinic"
|
||||
},
|
||||
{
|
||||
@@ -58532,7 +58532,7 @@
|
||||
"source_location": "L3161",
|
||||
"_origin": "ast",
|
||||
"id": "docs_clinicpro_manual_v2_\u0647\u062f\u0631\u0647\u0627\u06cc_\u0627\u0636\u0627\u0641\u06cc_3161",
|
||||
"community": 662,
|
||||
"community": 304,
|
||||
"norm_label": "\u0647\u062f\u0631\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc"
|
||||
},
|
||||
{
|
||||
@@ -58542,7 +58542,7 @@
|
||||
"source_location": "L3169",
|
||||
"_origin": "ast",
|
||||
"id": "docs_clinicpro_manual_v2_\u067e\u0627\u0633\u062e_\u0647\u0627_3169",
|
||||
"community": 662,
|
||||
"community": 304,
|
||||
"norm_label": "\u067e\u0627\u0633\u062e\u200c\u0647\u0627"
|
||||
},
|
||||
{
|
||||
@@ -58632,7 +58632,7 @@
|
||||
"source_location": "L3250",
|
||||
"_origin": "ast",
|
||||
"id": "docs_clinicpro_manual_v2_36_get_get_my_rate",
|
||||
"community": 304,
|
||||
"community": 667,
|
||||
"norm_label": "36. \ud83d\udfe2 `get` get my rate"
|
||||
},
|
||||
{
|
||||
@@ -58642,7 +58642,7 @@
|
||||
"source_location": "L3260",
|
||||
"_origin": "ast",
|
||||
"id": "docs_clinicpro_manual_v2_\u0647\u062f\u0631\u0647\u0627\u06cc_\u0627\u0636\u0627\u0641\u06cc_3260",
|
||||
"community": 304,
|
||||
"community": 667,
|
||||
"norm_label": "\u0647\u062f\u0631\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc"
|
||||
},
|
||||
{
|
||||
@@ -58652,7 +58652,7 @@
|
||||
"source_location": "L3267",
|
||||
"_origin": "ast",
|
||||
"id": "docs_clinicpro_manual_v2_\u067e\u0627\u0633\u062e_\u0647\u0627_3267",
|
||||
"community": 304,
|
||||
"community": 667,
|
||||
"norm_label": "\u067e\u0627\u0633\u062e\u200c\u0647\u0627"
|
||||
},
|
||||
{
|
||||
@@ -63212,7 +63212,7 @@
|
||||
"source_location": "L585",
|
||||
"_origin": "ast",
|
||||
"id": "api_admin_payment_management",
|
||||
"community": 649,
|
||||
"community": 201,
|
||||
"norm_label": "payment management"
|
||||
},
|
||||
{
|
||||
@@ -63222,7 +63222,7 @@
|
||||
"source_location": "L587",
|
||||
"_origin": "ast",
|
||||
"id": "api_admin_get_api_v1_admin_payments",
|
||||
"community": 649,
|
||||
"community": 201,
|
||||
"norm_label": "get `/api/v1/admin/payments`"
|
||||
},
|
||||
{
|
||||
@@ -63232,7 +63232,7 @@
|
||||
"source_location": "L593",
|
||||
"_origin": "ast",
|
||||
"id": "api_admin_query_parameters_593",
|
||||
"community": 649,
|
||||
"community": 201,
|
||||
"norm_label": "query parameters"
|
||||
},
|
||||
{
|
||||
@@ -63242,7 +63242,7 @@
|
||||
"source_location": "L600",
|
||||
"_origin": "ast",
|
||||
"id": "api_admin_response_200_600",
|
||||
"community": 649,
|
||||
"community": 201,
|
||||
"norm_label": "response `200`"
|
||||
},
|
||||
{
|
||||
@@ -63332,7 +63332,7 @@
|
||||
"source_location": "L696",
|
||||
"_origin": "ast",
|
||||
"id": "api_admin_secretary_management",
|
||||
"community": 201,
|
||||
"community": 662,
|
||||
"norm_label": "secretary management"
|
||||
},
|
||||
{
|
||||
@@ -63342,7 +63342,7 @@
|
||||
"source_location": "L698",
|
||||
"_origin": "ast",
|
||||
"id": "api_admin_get_api_v1_admin_secretaries",
|
||||
"community": 201,
|
||||
"community": 662,
|
||||
"norm_label": "get `/api/v1/admin/secretaries`"
|
||||
},
|
||||
{
|
||||
@@ -63352,7 +63352,7 @@
|
||||
"source_location": "L704",
|
||||
"_origin": "ast",
|
||||
"id": "api_admin_query_parameters_704",
|
||||
"community": 201,
|
||||
"community": 662,
|
||||
"norm_label": "query parameters"
|
||||
},
|
||||
{
|
||||
@@ -63362,7 +63362,7 @@
|
||||
"source_location": "L711",
|
||||
"_origin": "ast",
|
||||
"id": "api_admin_response_200_711",
|
||||
"community": 201,
|
||||
"community": 662,
|
||||
"norm_label": "response `200`"
|
||||
},
|
||||
{
|
||||
@@ -199358,5 +199358,5 @@
|
||||
}
|
||||
],
|
||||
"hyperedges": [],
|
||||
"built_at_commit": "97958ecc7d8793c324d112089f763d6f9702f2b9"
|
||||
"built_at_commit": "afb5b2827298c9e2301197713a975f0a376c8475"
|
||||
}
|
||||
@@ -1650,13 +1650,13 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/Sms/Provider/KavehNegarProvider.php": {
|
||||
"mtime": 1781516938.5808463,
|
||||
"ast_hash": "204026c439d9739c98d9f5d8e0c444a6",
|
||||
"mtime": 1782748838.317826,
|
||||
"ast_hash": "b014a73717612d8c6196b21513a6a460",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/Sms/Provider/RanginehProvider.php": {
|
||||
"mtime": 1781013629.869744,
|
||||
"ast_hash": "e8074b887064d59396270ee0760d6c68",
|
||||
"mtime": 1782748853.3315036,
|
||||
"ast_hash": "6ddebcd3c562b18563b270e3624819d5",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"src/Sms/Provider/SmsProviderInterface.php": {
|
||||
|
||||
@@ -12,12 +12,14 @@ class KavehNegarProvider implements SmsProviderInterface
|
||||
public function __construct(
|
||||
private readonly HttpClientInterface $httpClient,
|
||||
private readonly SiteConfigRepository $configRepo,
|
||||
private readonly string $apiKey = '',
|
||||
private readonly string $sender = '',
|
||||
// Nullable: env `%env(default::KAVENEGAR_API_KEY)%` resolves to null when unset
|
||||
// (the real key normally comes from DB site config below, not env).
|
||||
private readonly ?string $apiKey = null,
|
||||
private readonly ?string $sender = null,
|
||||
) {}
|
||||
|
||||
private function key(): string { return $this->configRepo->get('kavenegar_api_key') ?: $this->apiKey; }
|
||||
private function sender(): string { return $this->configRepo->get('kavenegar_sender') ?: $this->sender; }
|
||||
private function key(): string { return $this->configRepo->get('kavenegar_api_key') ?: ($this->apiKey ?? ''); }
|
||||
private function sender(): string { return $this->configRepo->get('kavenegar_sender') ?: ($this->sender ?? ''); }
|
||||
|
||||
public function getName(): string { return 'kavenegar'; }
|
||||
|
||||
|
||||
@@ -10,8 +10,10 @@ class RanginehProvider implements SmsProviderInterface
|
||||
|
||||
public function __construct(
|
||||
private readonly HttpClientInterface $httpClient,
|
||||
private readonly string $apiKey,
|
||||
private readonly string $sender,
|
||||
// Nullable: env `%env(default::RANGINEH_API_KEY)%` resolves to null when unset,
|
||||
// which would crash construction (TypeError) before the provider is ever used.
|
||||
private readonly ?string $apiKey = null,
|
||||
private readonly ?string $sender = null,
|
||||
) {}
|
||||
|
||||
public function getName(): string { return 'rangineh'; }
|
||||
@@ -20,8 +22,8 @@ class RanginehProvider implements SmsProviderInterface
|
||||
{
|
||||
try {
|
||||
$resp = $this->httpClient->request('POST', self::BASE . '/send', [
|
||||
'json' => ['from' => $this->sender, 'to' => [$mobile], 'text' => $message],
|
||||
'headers' => ['ApiKey' => $this->apiKey],
|
||||
'json' => ['from' => $this->sender ?? '', 'to' => [$mobile], 'text' => $message],
|
||||
'headers' => ['ApiKey' => $this->apiKey ?? ''],
|
||||
'timeout' => 10,
|
||||
]);
|
||||
return $resp->getStatusCode() === 200;
|
||||
|
||||
Reference in New Issue
Block a user