lib/chatwork/member.rb in chatwork-0.5.0 vs lib/chatwork/member.rb in chatwork-0.6.0

- old
+ new

@@ -1,9 +1,60 @@ module ChatWork - class Member < Entity - install_class_operations :get + module Member + extend EntityMethods - def self.path - "/rooms/%d/members" + # Get the list of all chat members associated with the specified chat + # + # @see http://developer.chatwork.com/ja/endpoint_rooms.html#GET-rooms-room_id-members + # @see http://download.chatwork.com/ChatWork_API_Documentation.pdf + # + # @param room_id [Integer] + # + # @return [Array<Hashie::Mash>] + # + # @example response format + # [ + # { + # "account_id": 123, + # "role": "member", + # "name": "John Smith", + # "chatwork_id": "tarochatworkid", + # "organization_id": 101, + # "organization_name": "Hello Company", + # "department": "Marketing", + # "avatar_image_url": "https://example.com/abc.png" + # } + # ] + def self.get(room_id:) + _get("/rooms/#{room_id}/members") + end + + # Change associated members of group chat at once + # + # @see http://developer.chatwork.com/ja/endpoint_rooms.html#PUT-rooms-room_id-members + # @see http://download.chatwork.com/ChatWork_API_Documentation.pdf + # + # @param room_id [Integer] + # @param members_admin_ids [Array<Integer>, String] List of user IDs who will be given administrator permission for the group chat. + # At least one user must be specified as an administrator. + # @param members_member_ids [Array<Integer>, String] List of user IDs who will be given member permission for the group chat. + # @param members_readonly_ids [Array<Integer>, String] List of user IDs who will be given read-only permission for the group chat. + # + # @return [Hashie::Mash] + # + # @example response format + # { + # "admin": [123, 542, 1001], + # "member": [10, 103], + # "readonly": [6, 11] + # } + def self.update_all(room_id:, members_admin_ids:, members_member_ids: nil, members_readonly_ids: nil) + params = { + members_admin_ids: Array(members_admin_ids).join(","), + } + params[:members_member_ids] = Array(members_member_ids).join(",") if members_member_ids + params[:members_readonly_ids] = Array(members_readonly_ids).join(",") if members_readonly_ids + + _put("/rooms/#{room_id}/members", params) end end end