Browse Source

ns each post param

Joachim M. Giæver 2 years ago
parent
commit
5268e56f09
4 changed files with 14 additions and 7 deletions
  1. 11 3
      src/AbstractPostSerializable.php
  2. 0 2
      src/Assignment.php
  3. 1 1
      src/Customer.php
  4. 2 1
      src/Questionaire.php

+ 11 - 3
src/AbstractPostSerializable.php

@@ -22,12 +22,20 @@ abstract class AbstractPostSerializable implements PostSerializableInterface {
         return new static(...array_values($vars));
     }
 
-    final public static function getPostParams(): array {
+    protected static function removePrefix(string $param): string {
+        return ltrim(strstr($param, '-'), '-');
+    }
+
+    final public static function getPostParams(bool $short = false): array {
         
         $vars = [];
 
-        foreach ((new ReflectionClass(static::class))->getConstructor()->getParameters() as $param)
-            $vars[$param->getName()] = !($param->isOptional() || $param->allowsNull());
+        foreach ((new ReflectionClass(static::class))->getConstructor()->getParameters() as $param) {
+            if ($short)
+                $vars[$param->getName()] = !($param->isOptional() || $param->allowsNull());
+            else
+                $vars[sprintf('%s-%s', strtolower(basename(str_replace('\\', DIRECTORY_SEPARATOR, static::class))), $param->getName())] = !($param->isOptional() || $param->allowsNull());
+        }
 
         return $vars;
     }

+ 0 - 2
src/Assignment.php

@@ -2,8 +2,6 @@
 
 namespace DNB;
 
-use ArrayIterator;
-
 class Assignment extends AbstractPostSerializable implements PostSerializableInterface {
     
     private string $number;

+ 1 - 1
src/Customer.php

@@ -26,7 +26,7 @@ class Customer extends AbstractPostSerializable implements PostSerializableInter
     public function toPostParams(): array {
         $arr = [];
 
-        foreach (array_keys(static::getPostParams()) as $key)
+        foreach (array_keys(static::getPostParams(true)) as $key)
             if (!is_null($this->{$key}))
                 $arr[$key] = $this->{$key};
 

+ 2 - 1
src/Questionaire.php

@@ -21,8 +21,9 @@ class Questionaire extends AbstractPostSerializable implements PostSerializableI
     public function toPostParams(): array {
         $arr = [];
 
-        foreach (array_keys(static::getPostParams()) as $key)
+        foreach (array_keys(static::getPostParams(true)) as $key) {
             $arr[$key] = !is_null($this->{$key}) ? $this->{$key} : false;
+        }
 
         return $arr;
     }