Beispiel #1
0
 /**
  * Create a new body from an array
  *
  * @param string $mediaType
  * @param array $data
  * [
  *  schema:     ?string
  *  example:    ?string
  *  examples:   ?array
  * ]
  *
  * @throws \Exception
  *
  * @return Body
  */
 public static function createFromArray($mediaType, array $data = [])
 {
     $body = new static($mediaType);
     if (isset($data['description'])) {
         $body->setDescription($data['description']);
     }
     if (isset($data['schema'])) {
         $body->setSchema($data['schema']);
     }
     if (isset($data['example'])) {
         $body->addExample($data['example']);
     }
     if (isset($data['examples'])) {
         foreach ($data['examples'] as $example) {
             $body->addExample($example);
         }
     }
     return $body;
 }
 /**
  * Create a Query Parameter from an Array
  *
  * @param $key
  * @param $data
  * [
  *  displayName:        ?string
  *  description:        ?string
  *  type:               ?["string","number","integer","date","boolean","file"]
  *  enum:               ?array
  *  pattern:            ?string
  *  validationPattern:  ?string
  *  minLength:          ?integer
  *  maxLength:          ?integer
  *  minimum:            ?integer
  *  maximum:            ?integer
  *  example:            ?string
  *  examples:           ?array
  *  repeat:             ?boolean
  *  required:           ?boolean
  *  default:            ?string
  * ]
  *
  * @throws \Exception
  *
  * @return NamedParameter
  */
 public static function createFromArray($key, array $data = [])
 {
     $namedParameter = new static($key);
     if (isset($data['displayName'])) {
         $namedParameter->setDisplayName($data['displayName']);
     }
     if (isset($data['description'])) {
         $namedParameter->setDescription($data['description']);
     }
     if (isset($data['type'])) {
         $namedParameter->setType($data['type']);
     }
     if (isset($data['enum'])) {
         $namedParameter->setEnum($data['enum']);
     }
     if (isset($data['pattern'])) {
         $namedParameter->setValidationPattern($data['pattern']);
     }
     // RAML 1.0
     if (isset($data['validationPattern'])) {
         $namedParameter->setValidationPattern($data['validationPattern']);
     }
     if (isset($data['minLength'])) {
         $namedParameter->setMinLength($data['minLength']);
     }
     if (isset($data['maxLength'])) {
         $namedParameter->setMaxLength($data['maxLength']);
     }
     if (isset($data['minimum'])) {
         $namedParameter->setMinimum($data['minimum']);
     }
     if (isset($data['maximum'])) {
         $namedParameter->setMaximum($data['maximum']);
     }
     if (isset($data['example'])) {
         $namedParameter->addExample($data['example']);
     }
     if (isset($data['examples'])) {
         foreach ($data['examples'] as $example) {
             $namedParameter->addExample($example);
         }
     }
     if (isset($data['repeat'])) {
         $namedParameter->setRepeat($data['repeat']);
     }
     if (isset($data['required'])) {
         $namedParameter->setRequired($data['required']);
     }
     if (isset($data['default'])) {
         if ($namedParameter->getType() === self::TYPE_DATE) {
             $namedParameter->setDefault(\DateTime::createFromFormat('D, d M Y H:i:s T', $data['default']));
         } else {
             $namedParameter->setDefault($data['default']);
         }
     }
     return $namedParameter;
 }