module Esa::ApiMethods
Constants
- HTTP_REGEX
Public Instance Methods
add_comment_star(comment_id, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 102 def add_comment_star(comment_id, params = nil, headers = nil) send_post("/v1/teams/#{current_team!}/comments/#{comment_id}/star", params, headers) end
add_post_star(post_number, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 90 def add_post_star(post_number, params = nil, headers = nil) send_post("/v1/teams/#{current_team!}/posts/#{post_number}/star", params, headers) end
add_watch(post_number, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 114 def add_watch(post_number, params = nil, headers = nil) send_post("/v1/teams/#{current_team!}/posts/#{post_number}/watch", params, headers) end
append_post(post_number, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 46 def append_post(post_number, params = nil, headers = nil) send_post("/v1/teams/#{current_team!}/posts/#{post_number}/append", wrap(params, :post), headers) end
batch_move_category(params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 126 def batch_move_category(params = nil, headers = nil) send_post("/v1/teams/#{current_team!}/categories/batch_move", params, headers) end
cancel_invitation(code, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 151 def cancel_invitation(code, params = nil, headers = nil) send_delete("/v1/teams/#{current_team!}/invitations/#{code}", params, headers) end
categories(params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 122 def categories(params = nil, headers = nil) send_get("/v1/teams/#{current_team!}/categories", params, headers) end
comment(comment_id, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 62 def comment(comment_id, params = nil, headers = nil) send_get("/v1/teams/#{current_team!}/comments/#{comment_id}", params, headers) end
comment_stargazers(comment_id, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 98 def comment_stargazers(comment_id, params = nil, headers = nil) send_get("/v1/teams/#{current_team!}/comments/#{comment_id}/stargazers", params, headers) end
comments(post_number = nil, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 54 def comments(post_number = nil, params = nil, headers = nil) if post_number.nil? send_get("/v1/teams/#{current_team!}/comments", params, headers) else send_get("/v1/teams/#{current_team!}/posts/#{post_number}/comments", params, headers) end end
create_comment(post_number, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 66 def create_comment(post_number, params = nil, headers = nil) send_post("/v1/teams/#{current_team!}/posts/#{post_number}/comments", wrap(params, :comment), headers) end
create_emoji(params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 159 def create_emoji(params = nil, headers = nil) params[:image] = Base64.strict_encode64(File.read(params[:image])) if params[:image] send_post("/v1/teams/#{current_team!}/emojis", wrap(params, :emoji), headers) end
create_post(params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 38 def create_post(params = nil, headers = nil) send_post("/v1/teams/#{current_team!}/posts", wrap(params, :post), headers) end
create_sharing(post_number, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 78 def create_sharing(post_number, params = nil, headers = nil) send_post("/v1/teams/#{current_team!}/posts/#{post_number}/sharing", params, headers) end
delete_comment(comment_id, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 74 def delete_comment(comment_id, params = nil, headers = nil) send_delete("/v1/teams/#{current_team!}/comments/#{comment_id}", params, headers) end
delete_comment_star(comment_id, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 106 def delete_comment_star(comment_id, params = nil, headers = nil) send_delete("/v1/teams/#{current_team!}/comments/#{comment_id}/star", params, headers) end
delete_emoji(emoji_code, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 164 def delete_emoji(emoji_code, params = nil, headers = nil) send_delete("/v1/teams/#{current_team!}/emojis/#{emoji_code}", params, headers) end
delete_member(screen_name, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 26 def delete_member(screen_name, params = nil, headers = nil) send_delete("/v1/teams/#{current_team!}/members/#{screen_name}", params, headers) end
delete_post(post_number, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 50 def delete_post(post_number, params = nil, headers = nil) send_delete("/v1/teams/#{current_team!}/posts/#{post_number}", params, headers) end
delete_post_star(post_number, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 94 def delete_post_star(post_number, params = nil, headers = nil) send_delete("/v1/teams/#{current_team!}/posts/#{post_number}/star", params, headers) end
delete_sharing(post_number, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 82 def delete_sharing(post_number, params = nil, headers = nil) send_delete("/v1/teams/#{current_team!}/posts/#{post_number}/sharing", params, headers) end
delete_watch(post_number, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 118 def delete_watch(post_number, params = nil, headers = nil) send_delete("/v1/teams/#{current_team!}/posts/#{post_number}/watch", params, headers) end
emojis(params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 155 def emojis(params = nil, headers = nil) send_get("/v1/teams/#{current_team}/emojis", params, headers) end
invitation(params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 134 def invitation(params = nil, headers = nil) send_get("/v1/teams/#{current_team!}/invitation", params, headers) end
members(params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 22 def members(params = nil, headers = nil) send_get("/v1/teams/#{current_team!}/members", params, headers) end
pending_invitations(params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 142 def pending_invitations(params = nil, headers = nil) send_get("/v1/teams/#{current_team!}/invitations", params, headers) end
post(post_number, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 34 def post(post_number, params = nil, headers = nil) send_get("/v1/teams/#{current_team!}/posts/#{post_number}", params, headers) end
post_stargazers(post_number, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 86 def post_stargazers(post_number, params = nil, headers = nil) send_get("/v1/teams/#{current_team!}/posts/#{post_number}/stargazers", params, headers) end
posts(params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 30 def posts(params = nil, headers = nil) send_get("/v1/teams/#{current_team!}/posts", params, headers) end
regenerate_invitation(params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 138 def regenerate_invitation(params = nil, headers = nil) send_post("/v1/teams/#{current_team!}/invitation_regenerator", params, headers) end
send_invitation(emails, params = {}, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 146 def send_invitation(emails, params = {}, headers = nil) params = params.merge(member: { emails: emails } ) send_post("/v1/teams/#{current_team!}/invitations", params, headers) end
signed_url(file_path, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 195 def signed_url(file_path, params = nil, headers = nil) send_get("/v1/teams/#{current_team!}/signed_url/#{file_path}", params, headers) end
stats(params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 18 def stats(params = nil, headers = nil) send_get("/v1/teams/#{current_team!}/stats", params, headers) end
team(team_name, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 14 def team(team_name, params = nil, headers = nil) send_get("/v1/teams/#{team_name}", params, headers) end
teams(params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 10 def teams(params = nil, headers = nil) send_get("/v1/teams", params, headers) end
update_comment(comment_id, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 70 def update_comment(comment_id, params = nil, headers = nil) send_patch("/v1/teams/#{current_team!}/comments/#{comment_id}", wrap(params, :comment), headers) end
update_post(post_number, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 42 def update_post(post_number, params = nil, headers = nil) send_patch("/v1/teams/#{current_team!}/posts/#{post_number}", wrap(params, :post), headers) end
upload_attachment(path_or_file_or_url, params = {}, headers = nil)
click to toggle source
beta
# File lib/esa/api_methods.rb, line 178 def upload_attachment(path_or_file_or_url, params = {}, headers = nil) file = file_from(path_or_file_or_url) setup_params_for_upload(params, file) response = send_post("/v1/teams/#{current_team!}/attachments/policies", params, headers) return response unless response.status == 200 attachment = response.body['attachment'] form_data = response.body['form'].merge(file: Faraday::UploadIO.new(file, params[:type])) s3_response = send_s3_request(:post, attachment['endpoint'], form_data) return s3_response unless s3_response.status == 204 response.body.delete('form') response end
user(params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 6 def user(params = nil, headers = nil) send_get("/v1/user", params, headers) end
watchers(post_number, params = nil, headers = nil)
click to toggle source
# File lib/esa/api_methods.rb, line 110 def watchers(post_number, params = nil, headers = nil) send_get("/v1/teams/#{current_team!}/posts/#{post_number}/watchers", params, headers) end
Private Instance Methods
content_type_from_file(file)
click to toggle source
# File lib/esa/api_methods.rb, line 208 def content_type_from_file(file) require 'mime/types' if mime_type = MIME::Types.type_for(file.path).first mime_type.content_type end rescue LoadError msg = 'Please pass content_type or install mime-types gem to guess content type from file' raise MissingContentTypeError, msg end
file_from(path_or_file_or_url)
click to toggle source
# File lib/esa/api_methods.rb, line 218 def file_from(path_or_file_or_url) path_or_file_or_url, headers_or_cookie = *path_or_file_or_url if path_or_file_or_url.is_a?(Array) if path_or_file_or_url.respond_to?(:read) path_or_file_or_url elsif path_or_file_or_url.is_a?(String) && HTTP_REGEX.match(path_or_file_or_url) remote_url = path_or_file_or_url headers = if headers_or_cookie headers_or_cookie.is_a?(Hash) ? headers_or_cookie : { Cookie: headers_or_cookie } else {} end response = send_simple_request(:get, remote_url, nil, headers) raise RemoteURLNotAvailableError, "#{remote_url} is not available." unless response.status == 200 PathStringIO.new(File.basename(remote_url), response.body) else path = path_or_file_or_url File.new(path, "r+b") end end
setup_params_for_upload(params, file)
click to toggle source
# File lib/esa/api_methods.rb, line 240 def setup_params_for_upload(params, file) params[:type] = params.delete(:content_type) || content_type_from_file(file) params[:size] = file.size params[:name] = File.basename(file.path) end
wrap(params, envelope)
click to toggle source
# File lib/esa/api_methods.rb, line 201 def wrap(params, envelope) return params if params.nil? return params unless params.is_a?(Hash) return params if params.has_key?(envelope.to_sym) || params.has_key?(envelope.to_s) { envelope => params } end