diff options
Diffstat (limited to 'vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Form.php')
-rw-r--r-- | vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Form.php | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Form.php b/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Form.php new file mode 100644 index 0000000..bead9d3 --- /dev/null +++ b/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Form.php @@ -0,0 +1,46 @@ +<?php + +namespace PayPalHttp\Serializer; + +use PayPalHttp\HttpRequest; +use PayPalHttp\Serializer; + +class Form implements Serializer +{ + /** + * @return string Regex that matches the content type it supports. + */ + public function contentType() + { + return "/^application\/x-www-form-urlencoded$/"; + } + + /** + * @param HttpRequest $request + * @return string representation of your data after being serialized. + */ + public function encode(HttpRequest $request) + { + if (!is_array($request->body) || !$this->isAssociative($request->body)) + { + throw new \Exception("HttpRequest body must be an associative array when Content-Type is: " . $request->headers["Content-Type"]); + } + + return http_build_query($request->body); + } + + /** + * @param $body + * @return mixed + * @throws \Exception as multipart does not support deserialization. + */ + public function decode($body) + { + throw new \Exception("CurlSupported does not support deserialization"); + } + + private function isAssociative(array $array) + { + return array_values($array) !== $array; + } +} |