Skip to content

Commit 6369117

Browse files
committed
Experimentation
1 parent fe3a9ad commit 6369117

File tree

71 files changed

+3840
-5738
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+3840
-5738
lines changed

php-symfony-neuron/.env.example

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,4 @@ TRADEFEEDS_API_KEY=your_tradefeeds_api_key
3333
###< Financial API Keys ###
3434

3535
###> Feature Flags ###
36-
# Set to 'true' to use mock data instead of real API calls
37-
USE_MOCK_DATA=false
3836
###< Feature Flags ###

php-symfony-neuron/config/packages/tradefeeds.yaml

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,4 @@ services:
1010
$client: '@http_client'
1111
$params: '@parameter_bag'
1212
$logger: '@logger'
13-
tags: ['app.api_client']
14-
15-
# Configure the MockTradeFeedsApiClient service for development/testing
16-
App\Service\ApiClient\MockTradeFeedsApiClient:
17-
arguments:
18-
$client: '@http_client'
19-
$params: '@parameter_bag'
20-
$logger: '@logger'
21-
tags: ['app.api_client']
13+
tags: ['app.api_client']

php-symfony-neuron/config/services.yaml

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ parameters:
77
genai.base_url: '%env(resolve:GENAI_BASE_URL)%'
88
genai.model: '%env(resolve:GENAI_MODEL)%'
99

10+
# Import domain-specific service configurations
11+
imports:
12+
- { resource: services/api_clients.yaml }
13+
- { resource: services/news_services.yaml }
14+
1015
services:
1116
# default configuration for services in *this* file
1217
_defaults:
@@ -40,17 +45,6 @@ services:
4045
App\Service\YahooFinanceService:
4146
arguments:
4247
$rapidApiKey: '%rapid_api.api_key%'
43-
$useMockData: '%env(default::bool:USE_MOCK_DATA)%'
44-
45-
# Stock Clients Factory Configuration
46-
App\Service\ApiClient\StockClientsFactory:
47-
arguments:
48-
$useMockData: '%env(default::bool:USE_MOCK_DATA)%'
49-
50-
# SEC API Client Factory Configuration
51-
App\Service\ApiClient\SecApiClientFactory:
52-
arguments:
53-
$useMockData: '%env(default::bool:USE_MOCK_DATA)%'
5448

5549
# LLM Client Factory Configuration
5650
App\Service\LlmClientFactory:
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# API Clients Service Configuration
2+
3+
services:
4+
# Default configuration for API client services
5+
_defaults:
6+
autowire: true
7+
autoconfigure: true
8+
public: false
9+
10+
# Register API clients by their domain-specific interfaces
11+
12+
# News API Clients
13+
App\Service\ApiClient\NewsApiClientInterface: '@App\Service\ApiClient\NewsApiClient'
14+
App\Service\ApiClient\NewsApiClient: ~
15+
16+
# SEC Filings API Clients
17+
App\Service\ApiClient\SecFilingsApiClientInterface: '@App\Service\SecFilingService'
18+
App\Service\SecFilingService:
19+
tags: ['app.sec_filings_client']
20+
21+
# Analyst Ratings API Clients
22+
App\Service\ApiClient\AnalystRatingsApiClientInterface: '@App\Service\ApiClient\TradeFeedsApiClient'
23+
24+
# ESG Data API Clients
25+
App\Service\ApiClient\EsgDataApiClientInterface: '@App\Service\ApiClient\EsgDataApiClient'
26+
App\Service\ApiClient\EsgDataApiClient: ~
27+
28+
# Executive Data API Clients
29+
App\Service\ApiClient\ExecutiveDataApiClientInterface: '@App\Service\FinancialDataAggregatorService'
30+
31+
# Stock Market Data Clients
32+
App\Service\ApiClient\AlphaVantageClient:
33+
tags: ['app.stock_market_data_client']
34+
App\Service\ApiClient\YahooFinanceClient:
35+
tags: ['app.stock_market_data_client']
36+
37+
# Financial Data Aggregator Service
38+
App\Service\FinancialDataAggregatorService:
39+
# Make this service available as the FinancialDataServiceInterface
40+
tags: ['app.financial_data_service', 'app.executive_data_client']
41+
# We'll use autowiring and compiler passes to inject the tagged services
42+
43+
# Register the FinancialDataAggregatorService as the implementation of FinancialDataServiceInterface
44+
App\Service\FinancialDataServiceInterface: '@App\Service\FinancialDataAggregatorService'
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# News Services Configuration
2+
3+
services:
4+
# Default configuration for news services
5+
_defaults:
6+
autowire: true
7+
autoconfigure: true
8+
public: false
9+
10+
# News API Client Adapter
11+
App\Service\News\NewsApiClientAdapter:
12+
arguments:
13+
$client: '@App\Service\ApiClient\NewsApiClient'
14+
tags: ['app.news_api_client']
15+
16+
# Yahoo Finance News Adapter
17+
App\Service\News\YahooFinanceNewsAdapter:
18+
arguments:
19+
$client: '@App\Service\ApiClient\YahooFinanceClient'
20+
tags: ['app.news_api_client']
21+
22+
# Composite News API Client
23+
App\Service\News\CompositeNewsApiClient:
24+
# This service will have all tagged news clients injected via the compiler pass
25+
tags: ['app.news_service']
26+
27+
# Register the CompositeNewsApiClient as the implementation of NewsService
28+
App\Service\News\NewsService: '@App\Service\News\CompositeNewsApiClient'

0 commit comments

Comments
 (0)