200 lines
7.2 KiB
YAML
200 lines
7.2 KiB
YAML
parameters:
|
|
|
|
services:
|
|
_defaults:
|
|
autowire: true
|
|
autoconfigure: true
|
|
public: false
|
|
|
|
Skobkin\Bundle\PointToolsBundle\:
|
|
resource: '../../src/Skobkin/Bundle/PointToolsBundle/*'
|
|
exclude: '../../src/Skobkin/Bundle/PointToolsBundle/{DataFixtures,DependencyInjection,DQL,DTO,Entity,Exception,Repository,Twig}'
|
|
|
|
# HTTP clients
|
|
# Default
|
|
GuzzleHttp\ClientInterface:
|
|
alias: app.http.point_client
|
|
|
|
# HTTP client for Telegram
|
|
app.http.telegram_client:
|
|
class: GuzzleHttp\Client
|
|
arguments: [{ timeout: 3.0 }]
|
|
tags:
|
|
- { name: csa_guzzle.client }
|
|
|
|
# HTTP client for Point API
|
|
app.http.point_client:
|
|
class: GuzzleHttp\Client
|
|
arguments: [ { base_uri: '%point_base_url%', timeout: 5.0 } ]
|
|
tags:
|
|
- { name: csa_guzzle.client }
|
|
|
|
|
|
# Point API clients
|
|
# User
|
|
Skobkin\Bundle\PointToolsBundle\Service\Api\UserApi:
|
|
tags:
|
|
- { name: monolog.logger, channel: point_user_api }
|
|
# Post
|
|
Skobkin\Bundle\PointToolsBundle\Service\Api\PostApi:
|
|
tags:
|
|
- { name: monolog.logger, channel: point_post_api }
|
|
|
|
|
|
# Point subscription manager
|
|
Skobkin\Bundle\PointToolsBundle\Service\SubscriptionsManager:
|
|
# TODO deal with autowire for EventDispatcherInterface
|
|
tags:
|
|
- { name: monolog.logger, channel: subscribers_update }
|
|
|
|
# Controllers
|
|
Skobkin\Bundle\PointToolsBundle\Controller\:
|
|
resource: '../../src/Skobkin/Bundle/PointToolsBundle/Controller'
|
|
public: true
|
|
tags: ['controller.service_arguments']
|
|
|
|
Skobkin\Bundle\PointToolsBundle\Controller\MainController:
|
|
arguments:
|
|
$appUserId: '%point_id%'
|
|
$appUserLogin: '%point_login%'
|
|
|
|
Skobkin\Bundle\PointToolsBundle\Controller\Api\CrawlerController:
|
|
arguments:
|
|
$crawlerToken: '%crawler_token%'
|
|
|
|
Skobkin\Bundle\PointToolsBundle\Controller\Telegram\WebHookController:
|
|
arguments:
|
|
$telegramToken: '%telegram_token%'
|
|
$debug: '%kernel.debug%'
|
|
|
|
|
|
# Console commands
|
|
# @todo https://github.com/symfony/symfony/blob/3.4/UPGRADE-3.4.md#httpkernel
|
|
# Subsribers update
|
|
Skobkin\Bundle\PointToolsBundle\Command\UpdateSubscriptionsCommand:
|
|
arguments:
|
|
$apiDelay: '%point_api_delay%'
|
|
$appUserId: '%point_id%'
|
|
tags:
|
|
- { name: console.command }
|
|
- { name: monolog.logger, channel: subscribers_update }
|
|
# Privacy update
|
|
Skobkin\Bundle\PointToolsBundle\Command\UpdateUsersPrivacyCommand:
|
|
arguments:
|
|
$apiDelay: '%point_api_delay%'
|
|
$appUserId: '%point_id%'
|
|
tags:
|
|
- { name: console.command }
|
|
- { name: monolog.logger, channel: privacy_update }
|
|
# Restore users removed by error
|
|
Skobkin\Bundle\PointToolsBundle\Command\RestoreRemovedUsersCommand:
|
|
arguments:
|
|
$apiDelay: '%point_api_delay%'
|
|
tags:
|
|
- { name: console.command }
|
|
# Webhook management
|
|
Skobkin\Bundle\PointToolsBundle\Command\TelegramWebHookCommand:
|
|
arguments:
|
|
$telegramToken: '%telegram_token%'
|
|
$telegramWebhookMaxConnections: '%telegram_max_connections%'
|
|
tags: [{ name: console.command }]
|
|
# Send message
|
|
Skobkin\Bundle\PointToolsBundle\Command\TelegramSendMessageCommand:
|
|
tags: [{ name: console.command }]
|
|
# WebSocket MQ processing
|
|
Skobkin\Bundle\PointToolsBundle\Command\ProcessWebsocketUpdatesCommand:
|
|
arguments:
|
|
$bsClient: '@leezy.pheanstalk.primary'
|
|
$bsTubeName: '%beanstalkd_ws_updates_tube%'
|
|
tags:
|
|
- { name: console.command }
|
|
|
|
|
|
# Entity repositories as services
|
|
# User
|
|
Skobkin\Bundle\PointToolsBundle\Repository\UserRepository:
|
|
factory: 'doctrine:getRepository'
|
|
arguments: ['Skobkin\Bundle\PointToolsBundle\Entity\User']
|
|
# Subscription
|
|
Skobkin\Bundle\PointToolsBundle\Repository\SubscriptionRepository:
|
|
factory: 'doctrine:getRepository'
|
|
arguments: ['Skobkin\Bundle\PointToolsBundle\Entity\Subscription']
|
|
# Subscription record/event
|
|
Skobkin\Bundle\PointToolsBundle\Repository\SubscriptionEventRepository:
|
|
factory: 'doctrine:getRepository'
|
|
arguments: ['Skobkin\Bundle\PointToolsBundle\Entity\SubscriptionEvent']
|
|
|
|
# Subscription record/event
|
|
Skobkin\Bundle\PointToolsBundle\Repository\UserRenameEventRepository:
|
|
factory: 'doctrine:getRepository'
|
|
arguments: ['Skobkin\Bundle\PointToolsBundle\Entity\UserRenameEvent']
|
|
# Post repository
|
|
Skobkin\Bundle\PointToolsBundle\Repository\Blogs\PostRepository:
|
|
factory: 'doctrine:getRepository'
|
|
arguments: ['Skobkin\Bundle\PointToolsBundle\Entity\Blogs\Post']
|
|
# Comment repository
|
|
Skobkin\Bundle\PointToolsBundle\Repository\Blogs\CommentRepository:
|
|
factory: 'doctrine:getRepository'
|
|
arguments: ['Skobkin\Bundle\PointToolsBundle\Entity\Blogs\Comment']
|
|
# Tag repository
|
|
Skobkin\Bundle\PointToolsBundle\Repository\Blogs\TagRepository:
|
|
factory: 'doctrine:getRepository'
|
|
arguments: ['Skobkin\Bundle\PointToolsBundle\Entity\Blogs\Tag']
|
|
# File repository
|
|
Skobkin\Bundle\PointToolsBundle\Repository\Blogs\FileRepository:
|
|
factory: 'doctrine:getRepository'
|
|
arguments: ['Skobkin\Bundle\PointToolsBundle\Entity\Blogs\File']
|
|
# Telegram Account repository
|
|
Skobkin\Bundle\PointToolsBundle\Repository\Telegram\AccountRepository:
|
|
factory: 'doctrine:getRepository'
|
|
arguments: ['Skobkin\Bundle\PointToolsBundle\Entity\Telegram\Account']
|
|
|
|
# Custom Markdown parser
|
|
app.point.markdown_parser:
|
|
class: Skobkin\Bundle\PointToolsBundle\Service\Markdown\PointParser
|
|
arguments: [[], '@router']
|
|
tags:
|
|
- { name: markdown.parser }
|
|
|
|
|
|
# Event listeners
|
|
# User name changed in Doctrine
|
|
Skobkin\Bundle\PointToolsBundle\EventListener\UsersUpdatedSubscriber:
|
|
tags:
|
|
- { name: doctrine.event_subscriber, connection: default }
|
|
# User renaming
|
|
Skobkin\Bundle\PointToolsBundle\EventListener\UsersRenamedListener:
|
|
tags:
|
|
- { name: kernel.event_listener, event: app.users.renamed }
|
|
# User subscribers updated
|
|
Skobkin\Bundle\PointToolsBundle\EventListener\UserSubscribersUpdatedListener:
|
|
tags:
|
|
- { name: kernel.event_listener, event: app.user.subscribers_updated }
|
|
|
|
|
|
# Twig extensions
|
|
Skobkin\Bundle\PointToolsBundle\Twig\PointUrlExtension:
|
|
arguments:
|
|
$pointDomain: '%point_domain%'
|
|
$pointScheme: '%point_scheme%'
|
|
$pointBaseUrl: '%point_base_url%'
|
|
|
|
# Telegram services
|
|
# Bot API client
|
|
unreal4u\TelegramAPI\TgLog:
|
|
arguments:
|
|
$client: '@app.http.telegram_client'
|
|
$botToken: '%telegram_token%'
|
|
# Logger API client
|
|
app.telegram.logger_client:
|
|
class: unreal4u\TelegramAPI\TgLog
|
|
arguments:
|
|
$botToken: '%telegram_token%'
|
|
$logger: null
|
|
$client: '@app.http.telegram_client'
|
|
|
|
# Private message processor
|
|
Skobkin\Bundle\PointToolsBundle\Service\Telegram\PrivateMessageProcessor:
|
|
arguments:
|
|
$appUserId: '%point_id%'
|