# This file was auto-generated by lib/tasks/web.rake module Slack module Web module Api module Endpoints module <%= group.gsub(".", "_").camelize %> <% names.sort.each_with_index do |(name, data), index| %> <% next if data['mixin'] %> <% if index > 0 %> <% end %> # <% data['desc'].split("\n").each_with_index do |line, index| %> <% line += ' (undocumented)' if data['undocumented'] && index == 0 %> # <%= line %> <% end %> # <% data['args'].each do |arg_name, arg_v| %> # @option options [<%= arg_v['type'] %>] :<%= arg_name %> <% arg_v['desc'].lines.each do |l| %> <% if l.strip.length > 0 %> # <%= l.strip %> <% else %> # <% end %> <% end %> <% end %> <% if data['undocumented'] %> # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/<%= group %>/<%= group %>.<%= name %>.json <% else %> # @see https://api.slack.com/methods/<%= group %>.<%= name %> # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/<%= group %>/<%= group %>.<%= name %>.json <% end %> def <%= group.gsub(".", "_") %>_<%= name %>(options = {}) <% data['args'].select{ |k, v| v['required'] }.each do |arg_name, arg_v| %> throw ArgumentError.new('Required arguments :<%= arg_name %> missing') if options[:<%= arg_name %>].nil? <% end %> <% if data['group'] == 'groups' && data['args']['channel'] && !data['args']['channel']['desc'].include?('Can be an encoded ID, or a name.') %> options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel] <% elsif data['args']['channel'] && !data['args']['channel']['desc'].include?('Can be an encoded ID, or a name.') %> options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel] <% end %> <% if data['args']['user'] %> options = options.merge(user: users_id(options)['user']['id']) if options[:user] <% end %> <% if data['undocumented'] %> logger.warn('The <%= group %>.<%= name %> method is undocumented.') <% end %> <% if data['args'].keys.include?('cursor') %> if block_given? Pagination::Cursor.new(self, :<%= group.gsub(".", "_") %>_<%= name %>, options).each do |page| yield page end else post('<%= group %>.<%= name %>', options) end <% else %> post('<%= group %>.<%= name %>', options) <% end %> end <% end %> end end end end end