File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44
55interface Factory
66{
7- /**
8- * Get an webhook provider implementation.
9- *
10- * @param string $driver
11- * @return \Receiver\Contracts\Provider
12- */
137 public function driver ($ driver = null );
148}
Original file line number Diff line number Diff line change 22
33namespace Receiver \Contracts ;
44
5+ use Illuminate \Http \Request ;
6+
57interface Provider
68{
9+ public function receive (Request $ request ): static ;
10+
711 /**
812 * Get the webhook instance.
913 *
Original file line number Diff line number Diff line change 77use Receiver \Contracts \Factory ;
88
99/**
10- * @method static \Receiver\Contracts\Factory driver(string $driver = null)
11- * @method static \Receiver\Contracts\Factory receive(Request $request)
12- * @method static \Receiver\Contracts\Factory respond ()
13- * @mixin \Receiver\Contracts\Factory
14- * @mixin \Receiver\Contracts\Provider
10+ * @method static \Receiver\Providers\AbstractProvider driver(string $driver = null)
11+ * @method static \Receiver\Providers\AbstractProvider receive(Request $request)
12+ * @method static \Symfony\Component\HttpFoundation\Response ok ()
13+ * @see \Receiver\Contracts\Factory
14+ * @see \Receiver\Contracts\Provider
1515 */
1616class Receiver extends Facade
1717{
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Receiver \Providers ;
4+
5+ use Illuminate \Http \Request ;
6+
7+ class FakeProvider extends AbstractProvider
8+ {
9+ /**
10+ * @param Request $request
11+ * @return string
12+ */
13+ public function getEvent (Request $ request ): string
14+ {
15+ return $ request ->input ('type ' , 'fake ' );
16+ }
17+
18+ /**
19+ * @param Request $request
20+ * @return array
21+ */
22+ public function getData (Request $ request ): array
23+ {
24+ return $ request ->input ('data ' , []);
25+ }
26+ }
Original file line number Diff line number Diff line change 66use Illuminate \Support \Manager ;
77use InvalidArgumentException ;
88use Receiver \Contracts \Factory ;
9+ use Receiver \Providers \AbstractProvider ;
10+ use Receiver \Providers \FakeProvider ;
911use Receiver \Providers \GithubProvider ;
1012use Receiver \Providers \HubspotProvider ;
1113use Receiver \Providers \PostmarkProvider ;
@@ -90,12 +92,23 @@ protected function createStripeDriver(): StripeProvider
9092 );
9193 }
9294
95+ /**
96+ * Create an instance of the specified driver.
97+ */
98+ protected function createFakeDriver (): FakeProvider
99+ {
100+ return $ this ->buildProvider (
101+ FakeProvider::class,
102+ []
103+ );
104+ }
105+
93106 /**
94107 * Build a webhook provider instance.
95108 *
96109 * @param string $provider
97110 * @param array $config
98- * @return \Receiver\Providers\ AbstractProvider
111+ * @return AbstractProvider
99112 */
100113 public function buildProvider (string $ provider , array $ config ): Providers \AbstractProvider
101114 {
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Receiver \Tests ;
4+
5+ use Illuminate \Http \JsonResponse ;
6+ use Illuminate \Http \Request ;
7+ use Receiver \Facades \Receiver ;
8+
9+ class FacadeTest extends TestCase
10+ {
11+ public function test_ide_helpers ()
12+ {
13+ $ request = new Request ();
14+
15+ $ receiver = Receiver::driver ('fake ' )->receive ($ request );
16+
17+ $ this ->assertInstanceOf (JsonResponse::class, $ receiver ->ok ());
18+ }
19+ }
You can’t perform that action at this time.
0 commit comments