Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
66.67% covered (warning)
66.67%
2 / 3
CRAP
83.87% covered (success)
83.87%
26 / 31
DigitalV2Provider
0.00% covered (danger)
0.00%
0 / 1
66.67% covered (warning)
66.67%
2 / 3
4.07
83.87% covered (success)
83.87%
26 / 31
 fake
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
5 / 5
 call
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 5
 fakeOne
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
21 / 21
1<?php
2
3namespace Qmp\Laravel\SiteGeneratorOffers\Retriever;
4
5use Faker\Generator as Faker;
6use GuzzleHttp\Client;
7use Illuminate\Support\Collection;
8
9class DigitalV2Provider extends AbstractProvider
10{
11    protected function fake(): Collection
12    {
13        $random = random_int(5, 15);
14        $result = collect();
15
16        for ($i = 0; $i < $random; $i++) {
17            $result->push($this->fakeOne());
18        }
19
20        return $result;
21    }
22
23    protected function call(): Collection
24    {
25        $client = new Client();
26        $request = $client->get(config('site-generator.digitalv2_url') . '/site-generator/offer?token=' . config('site-generator.digitalv2_token'));
27        $response = $request->getBody();
28
29        $offers = json_decode($response, true);
30
31        return collect($offers);
32    }
33
34    protected function fakeOne()
35    {
36        $faker = resolve(Faker::class);
37
38        $campaign = $faker->company;
39        $offer = 'Banniere ' . $campaign . ' 300x250 2001';
40        $offer_id = $faker->unique()->numberBetween(5000, 5015);
41
42        return [
43            'id' => $offer_id,
44            'text' => $offer,
45            'status' => 1, // $faker->randomElement([0, 1]),
46            'e_cpm' => $faker->randomFloat(2, 1, 20),
47            'description' => $faker->text(150),
48            'textBtn' => $faker->words(4, true),
49            'title' => $faker->words(5, true),
50            'action' => $faker->randomElement(["iframe", "new_window", "clic_transmission", "submit_transmission", "redirection"]),
51            'digitalv2' => [
52                'id' => $offer_id,
53                'name' => $offer,
54                'state' => $faker->randomElement([0, 1]),
55                'date_create' => $faker->date() . ' ' . $faker->time(),
56                'offer_id' => $faker->numberBetween(3000, 3015),
57                'offer_name' => $campaign . ' display 2001',
58                'offer_state' => $faker->randomElement([1, 2]),
59                'ca' => 0,
60                'total' => 0
61            ]
62        ];
63    }
64}