| Total Complexity | 4 | 
| Total Lines | 48 | 
| Duplicated Lines | 0 % | 
| Coverage | 93.33% | 
| Changes | 0 | ||
| 1 | <?php  | 
            ||
| 11 | class DataConverter implements DataConverterInterface  | 
            ||
| 12 | { | 
            ||
| 13 | /**  | 
            ||
| 14 | * @param \Xervice\DataProvider\Business\Model\DataProvider\DataProviderInterface $dataProvider  | 
            ||
| 15 | *  | 
            ||
| 16 | * @return string  | 
            ||
| 17 | */  | 
            ||
| 18 | 6 | public function convertTo(DataProviderInterface $dataProvider): string  | 
            |
| 19 |     { | 
            ||
| 20 | 6 | return json_encode(  | 
            |
| 21 | [  | 
            ||
| 22 | 6 | 'class' => \get_class($dataProvider),  | 
            |
| 23 | 6 | 'data' => $dataProvider->toArray()  | 
            |
| 24 | ]  | 
            ||
| 25 | );  | 
            ||
| 26 | }  | 
            ||
| 27 | |||
| 28 | /**  | 
            ||
| 29 | * @param string $data  | 
            ||
| 30 | *  | 
            ||
| 31 | * @return \Xervice\DataProvider\Business\Model\DataProvider\DataProviderInterface  | 
            ||
| 32 | * @throws \Xervice\Redis\Business\Exception\ConverterException  | 
            ||
| 33 | */  | 
            ||
| 34 | 2 | public function convertFrom(string $data): DataProviderInterface  | 
            |
| 35 |     { | 
            ||
| 36 | 2 | $data = json_decode($data, true);  | 
            |
| 37 | |||
| 38 | 2 |         if (!isset($data['data'], $data['class'])) { | 
            |
| 39 |             throw new ConverterException('Data have wrong format to convert (No class or data field)'); | 
            ||
| 40 | }  | 
            ||
| 41 | |||
| 42 | 2 | $provider = $data['class'];  | 
            |
| 43 | |||
| 44 | 2 | $provider = $this->createDataProvider($provider);  | 
            |
| 45 | 2 | $provider->fromArray($data['data']);  | 
            |
| 46 | |||
| 47 | 2 | return $provider;  | 
            |
| 48 | }  | 
            ||
| 49 | |||
| 50 | /**  | 
            ||
| 51 | * @param string $provider  | 
            ||
| 52 | *  | 
            ||
| 53 | * @return \Xervice\DataProvider\Business\Model\DataProvider\DataProviderInterface  | 
            ||
| 54 | */  | 
            ||
| 55 | 2 | private function createDataProvider(string $provider): DataProviderInterface  | 
            |
| 59 | }  | 
            ||
| 60 | }  | 
            ||
| 61 |