Home Manual Reference Source

src/chatworkRo.js

import baseChatwork from './baseChatwork';

/**
 * @access public
 * @desc For use Chatwork Readonly services
 * @see http://developer.chatwork.com/ja/endpoints.html
 */
export default class chatworkRo extends baseChatwork {
  /**
   * @return {Promise} Return response or error message.
   * @desc 自分自身の情報を取得
   * @example
   * const cw = new Chatwork(apiKey);
   * cw.me()
   *   .then(res => {
   *     console.log(res.data);
   *     console.log(res.status);
   *     console.log(res.statusText);
   *     console.log(res.headers);
   *     console.log(res.config);
   *   })
   *   .catch(err => {
   *     if(err.response) {
   *       console.log(err.response.data);
   *       console.log(err.response.status);
   *       console.log(err.response.headers);
   *     } else if(err.request) {
   *       console.log(err.request);
   *     } else {
   *       console.log('Error', err.message);
   *     }
   *     console.log(err.config);
   *   });
   * @see http://developer.chatwork.com/ja/endpoint_me.html#GET-me
   */
  me() {
    return this.instance.get('/me');
  }

  /**
   * @return {Promise} Return response or error message.
   * @desc 自分の未読数、未読To数、未完了タスク数を返す
   * @see http://developer.chatwork.com/ja/endpoint_my.html#GET-my-status
   */
  getMyStatus() {
    return this.instance.get('/my/status');
  }

  /**
   * @return {Promise} Return response or error message.
   * @desc 自分のタスク一覧を取得する。(100件まで取得可能)
   * @param {number} assignedByAccountId - タスクの依頼者のアカウントID
   * @param {string} [status = 'open'] - タスクのステータス 'open' or 'done'
   * @see http://developer.chatwork.com/ja/endpoint_my.html#GET-my-tasks
   */
  listMyTasks(assignedByAccountId, status = 'open') {
    return this.instance.get('/my/tasks', {
      params: {
        assigned_by_account_id: assignedByAccountId,
        status,
      },
    });
  }

  /**
   * @return {Promise} Return response or error message.
   * @desc 自分のコンタクト一覧を取得
   * @see http://developer.chatwork.com/ja/endpoint_contacts.html#GET-contacts
   */
  listMyContacts() {
    return this.instance.get('/contacts');
  }

  /**
   * @return {Promise} Return response or error message.
   * @desc 自分に対するコンタクト承認依頼一覧を取得する(100件まで取得可能)
   * @see http://developer.chatwork.com/ja/endpoint_incoming_requests.html#GET-incoming_requests
   */
  listIncomingRequests() {
    return this.instance.get('/incoming_requests');
  }

  /**
   * @return {Promise} Return response or error message.
   * @desc 自分のチャット一覧の取得
   * @see http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms
   */
  listMyMessages() {
    return this.instance.get('/rooms');
  }

  /**
   * @return {Promise} Return response or error message.
   * @desc チャットの名前、アイコン、種類(my/direct/group)を取得
   * @param {number} roomId - チャットルームのID
   * @see http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id
   */
  getRoomInfo(roomId) {
    return this.instance.get(`/rooms/${roomId}`);
  }

  /**
   * @return {Promise} Return response or error message.
   * @desc チャットのメンバー一覧を取得
   * @param {number} roomId - チャットルームのID
   * @see http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-members
   */
  listRoomMembers(roomId) {
    return this.instance.get(`/rooms/${roomId}/members`);
  }

  /**
   * @return {Promise} Return response or error message.
   * @desc チャットのメッセージ一覧を取得。パラメータ未指定だと前回取得分からの差分のみを返します。(最大100件まで取得)
   * @param {number} roomId - チャットルームのID
   * @param {number} [isForce = 0] - 1を指定すると未取得にかかわらず最新の100件を取得します
   * @see http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-messages
   */
  listRoomMessages(roomId, isForce = 0) {
    return this.instance.get(`/rooms/${roomId}/messages`, {
      params: {
        force: isForce,
      },
    });
  }

  /**
   * @return {Promise} Return response or error message.
   * @desc メッセージ情報を取得
   * @param {number} roomId - チャットルームのID
   * @param {string} messageId - 参照するメッセージのID
   * @see http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-messages-message_id
   */
  getMessageInfo(roomId, messageId) {
    return this.instance.get(`/rooms/${roomId}/messages/${messageId}`);
  }

  /**
   * @return {Promise} Return response or error message.
   * @desc チャットのタスク一覧を取得 (100件まで取得可能)
   * @param {number} roomId - チャットルームのID
   * @param {number} accountId - タスクの担当者のアカウントID
   * @param {number} assignedByAccountId - タスクの依頼者のアカウントID
   * @param {string} [status = 'open'] - タスクのステータス 'open' or 'done'
   * @see http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-tasks
   */
  listRoomTasks(roomId, accountId, assignedByAccountId, status = 'open') {
    return this.instance.get(`/rooms/${roomId}/tasks`, {
      params: {
        account_id: accountId,
        assigned_by_account_id: assignedByAccountId,
        status,
      },
    });
  }

  /**
   * @return {Promise} Return response or error message.
   * @desc タスク情報を取得
   * @param {number} roomId - チャットルームのID
   * @param {number} taskId - 参照するタスクのID
   * @see http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-tasks-task_id
   */
  getTaskInfo(roomId, taskId) {
    return this.instance.get(`/rooms/${roomId}/tasks/${taskId}`);
  }

  /**
   * @return {Promise} Return response or error message.
   * @desc チャットのファイル一覧を取得 (100件まで取得可能)
   * @param {number} roomId - チャットルームのID
   * @param {number} accountId - アップロードしたユーザーのアカウントID
   * @see http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-files
   */
  listRoomFiles(roomId, accountId) {
    return this.instance.get(`/rooms/${roomId}/files`, {
      params: {
        account_id: accountId,
      },
    });
  }

  /**
   * @return {Promise} Return response or error message.
   * @desc ファイル情報を取得
   * @param {number} roomId - チャットルームのID
   * @param {number} fileId - 参照するファイルのID
   * @param {number} [isUrl = 0] - 1のときダウンロードする為のURLを生成する
   * @see http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-files-file_id
   */
  getFileInfo(roomId, fileId, isUrl = 0) {
    return this.instance.get(`/rooms/${roomId}/files/${fileId}`, {
      params: {
        create_download_url: isUrl,
      },
    });
  }
}