requestPostModifyMetadata.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. require_once('request.php');
  3. require_once('../arav_up_inclu/base64codec.php');
  4. require_once('../arav_up_inclu/injectors.php');
  5. class arkiwiRequestPostModifyMetadata extends arkiwiRequest
  6. {
  7. private $item64 = null;
  8. private $metadata = Array();
  9. private $path = null;
  10. public function __construct($request) {
  11. parent::__construct($request);
  12. $extra = $this->getRequestExtra();
  13. $this->item64 = $extra[0];
  14. $this->path = "/".decoder($extra[0]);
  15. }
  16. public function run() {
  17. if($this->request['method'] != 'POST') {
  18. $this->setBodyError(500, "arkiwiRequestPostModifyMetadata: POST method required.");
  19. return;
  20. }
  21. $input = file_get_contents('php://input');
  22. $obj = json_decode($input);
  23. if (!is_array($obj)) {
  24. $this->setBodyError(400, "Wrong json input");
  25. return;
  26. }
  27. foreach($obj as $kv) {
  28. if (isset($kv->name) && isset($kv->value)) {
  29. $this->addKeyValue($kv->name, $kv->value);
  30. }
  31. }
  32. store_md_array($this->metadata, $this->path);
  33. $this->setCode(201);
  34. $this->setBodyJSON(true);
  35. }
  36. private function addKeyValue($k, $v) {
  37. $this->metadata[$k] = $v;
  38. }
  39. }