/**
  * A factory for creating the appropriate exception based on the response from Wit.
  *
  * @param WitResponse $response The response that threw the exception.
  *
  * @return WitResponseException
  */
 public static function create(WitResponse $response)
 {
     $data = $response->getDecodedBody();
     $code = isset($data['code']) ? $data['code'] : null;
     if (isset($data['error'])) {
         $message = $data['error'];
     } else {
         if (isset($data['errors'])) {
             foreach ($data['errors'] as $error) {
                 $message = $error;
             }
         } else {
             $message = 'Unknown error from Wit.';
         }
     }
     switch ($code) {
         case 'no-auth':
             return new static($response, new WitAuthorizationException($message, 401));
     }
     return new static($response, new WitOtherException($message, $code));
 }