|
4 | 4 | require __DIR__ . '/vendor/autoload.php';
|
5 | 5 |
|
6 | 6 | use AdamWojs\AwokadoRobot\AwokadoRobot;
|
7 |
| -use AdamWojs\AwokadoRobot\MenuProvider; |
8 |
| -use AdamWojs\AwokadoRobot\Notification\SlackWebhookTransport; |
9 |
| -use Goutte\Client; |
10 |
| -use GuzzleHttp\Client as GuzzleClient; |
11 |
| -use GuzzleHttp\HandlerStack; |
12 |
| -use GuzzleHttp\MessageFormatter; |
13 |
| -use GuzzleHttp\Middleware; |
14 |
| -use Monolog\Handler\StreamHandler; |
15 |
| -use Monolog\Logger; |
16 |
| - |
17 |
| -if ($argc < 2) { |
18 |
| - exit("usage: $argv[0] <webhook-url>"); |
19 |
| -} |
20 |
| - |
21 |
| -$logger = new Logger('awokado-robot'); |
22 |
| -$logger->pushHandler(new StreamHandler(__DIR__.'/var/logs/awokado.log', Logger::DEBUG)); |
| 7 | +use AdamWojs\AwokadoRobot\Notification\SlackWebhookTransportFactory; |
| 8 | +use AdamWojs\AwokadoRobot\Menu\Provider\Awokado\AwokadoMenuProviderFactory; |
| 9 | +use AdamWojs\AwokadoRobot\Menu\Provider\ZieloneTarasy\ZieloneTarasyMenuProviderFactory; |
| 10 | +use AdamWojs\AwokadoRobot\LoggerFactory; |
23 | 11 |
|
24 |
| -$stack = HandlerStack::create(); |
25 |
| -$stack->push(Middleware::log($logger, new MessageFormatter('{request} - {response}'))); |
| 12 | +$restaurants = [ |
| 13 | + 'awokado' => AwokadoMenuProviderFactory::class, |
| 14 | + 'zielone-tarasy' => ZieloneTarasyMenuProviderFactory::class |
| 15 | +]; |
26 | 16 |
|
27 |
| -$goutteClient = new Client(); |
28 |
| -$goutteClient->setClient(new GuzzleClient([ |
29 |
| - 'timeout' => 180, |
30 |
| - 'handler' => $stack, |
31 |
| -])); |
32 | 17 |
|
33 |
| -$menuProvider = new MenuProvider($goutteClient, 'http://awokado.krakow.pl/lunch-bar/menu/'); |
34 |
| -$transport = new SlackWebhookTransport(new GuzzleClient([ |
35 |
| - 'handler' => $stack |
36 |
| -]), $argv[1]); |
| 18 | +if ($argc < 3) { |
| 19 | + exit("usage: $argv[0] <restaurant> <webhook-url>"); |
| 20 | +} |
37 | 21 |
|
38 |
| -$robot = new AwokadoRobot($menuProvider, $transport); |
39 |
| -$robot->setLogger($logger); |
40 |
| -$robot->run(); |
| 22 | +$restaurant = $argv[1]; |
| 23 | +$webhook = $argv[2]; |
41 | 24 |
|
42 | 25 |
|
| 26 | +if(empty($restaurants[$restaurant])) { |
| 27 | + exit("unknown restaurant"); |
| 28 | +} |
43 | 29 |
|
| 30 | +$menuProvider = $restaurants[$restaurant]::create(); |
| 31 | +$transport = SlackWebhookTransportFactory::create($webhook); |
44 | 32 |
|
| 33 | +$robot = new AwokadoRobot($menuProvider, $transport); |
| 34 | +$robot->setLogger(LoggerFactory::get()); |
| 35 | +$robot->run(); |
0 commit comments