Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / vendor / caxy / php-htmldiff / demo / save_demo.php
1 <?php
2
3 $requestBody = file_get_contents('php://input');
4
5 $requestJson = json_decode($requestBody, true);
6
7 if (empty($requestJson['old']) && empty($requestJson['new'])) {
8     throw new \Exception('Old text or new text is required.');
9 }
10
11 $jsonFile = __DIR__.'/demos.json';
12
13 $demoStorage = json_decode(file_get_contents($jsonFile), true);
14
15 if (empty($requestJson['name'])) {
16     $requestJson['name'] = 'DEMO '.count($demoStorage);
17 }
18
19 $oldText = $requestJson['old'];
20 $newText = $requestJson['new'];
21 $name = $requestJson['name'];
22 $legislativeOverride = !empty($requestJson['legislativeOverride']) ? $requestJson['legislativeOverride'] : null;
23
24 $existingDemoIndex = null;
25 foreach ($demoStorage as $index => $demo) {
26     if ($demo['name'] === $name) {
27         $existingDemoIndex = $index;
28         break;
29     }
30 }
31
32 if ($existingDemoIndex !== null) {
33     $demoStorage[$existingDemoIndex]['old'] = $oldText;
34     $demoStorage[$existingDemoIndex]['new'] = $newText;
35 } else {
36     $demoStorage[] = array(
37         'name' => $name,
38         'old'  => $oldText,
39         'new'  => $newText,
40         'legislativeOverride' => $legislativeOverride,
41     );
42 }
43
44 if (false === file_put_contents($jsonFile, json_encode($demoStorage))) {
45     throw new \Exception("Unable to save to file: $jsonFile");
46 }