api-console-assets
Version: 
This repo only exists to publish api console components to npm
184 lines (182 loc) • 4.2 kB
HTML
<script>
/**
 * Use the `<status-message>` element to generate status message for corresponding
 * status code.
 *
 * ## Usage
 * Create an element and set the `code` property. The `message` property will be
 * set synchronously with the corresponding HTTP status message (in spec defined
 * as a reason message).
 * If the status code is non standard status code then the message property
 * will be `undefined`.
 *
 * ### Example:
 * ```
 * var element = document.createElement('status-message');
 * element.code = 201;
 * console.log(element.message);
 * ```
 * Note that the `code` can be string and it will be converted into the numeric
 * value.
 */
Polymer({
  is: 'status-message',
  properties: {
    /**
     * The status code.
     */
    code: {
      type: Number,
      observer: 'setMessage'
    },
    /**
     * Mesage associated with the status code.
     * It will be filled as soon as `code` change.
     */
    message: {
      type: String,
      readOnly: true,
      notify: true
    }
  },
  /**
   * Associates status message to the `code`.
   * Don't call this method after setting the `code` property. It will be called
   * automatically.
   */
  setMessage: function() {
    var code = this.code;
    code = Number(code);
    var message;
    switch (code) {
      case 0:
        message = 'Request error';
        break;
      case 100:
        message = 'Continue';
        break;
      case 101:
        message = 'Switching Protocols';
        break;
      case 200:
        message = 'OK';
        break;
      case 201:
        message = 'Created';
        break;
      case 202:
        message = 'Accepted';
        break;
      case 203:
        message = 'Non-Authoritative Information';
        break;
      case 204:
        message = 'No Content';
        break;
      case 205:
        message = 'Reset Content';
        break;
      case 206:
        message = 'Partial Content';
        break;
      case 300:
        message = 'Multiple Choices';
        break;
      case 301:
        message = 'Moved Permanently';
        break;
      case 302:
        message = 'Found';
        break;
      case 303:
        message = 'See Other';
        break;
      case 304:
        message = 'Not Modified';
        break;
      case 305:
        message = 'Use Proxy';
        break;
      case 306:
        message = '(Unused)';
        break;
      case 307:
        message = 'Temporary Redirect';
        break;
      case 400:
        message = 'Bad Request';
        break;
      case 401:
        message = 'Unauthorized';
        break;
      case 402:
        message = 'Payment Required';
        break;
      case 403:
        message = 'Forbidden';
        break;
      case 404:
        message = 'Not Found';
        break;
      case 405:
        message = 'Method Not Allowed';
        break;
      case 406:
        message = 'Not Acceptable';
        break;
      case 407:
        message = 'Proxy Authentication Required';
        break;
      case 408:
        message = 'Request Timeout';
        break;
      case 409:
        message = 'Conflict';
        break;
      case 410:
        message = 'Gone';
        break;
      case 411:
        message = 'Length Required';
        break;
      case 412:
        message = 'Precondition Failed';
        break;
      case 413:
        message = 'Request Entity Too Large';
        break;
      case 414:
        message = 'Request-URI Too Long';
        break;
      case 415:
        message = 'Unsupported Media Type';
        break;
      case 416:
        message = 'Requested Range Not Satisfiable';
        break;
      case 417:
        message = 'Expectation Failed';
        break;
      case 500:
        message = 'Internal Server Error';
        break;
      case 501:
        message = 'Not Implemented';
        break;
      case 502:
        message = 'Bad Gateway';
        break;
      case 503:
        message = 'Service Unavailable';
        break;
      case 504:
        message = 'Gateway Timeout';
        break;
      case 505:
        message = 'HTTP Version Not Supported';
        break;
    }
    return this._setMessage(message);
  }
});
</script>