Sha256: fc6782e0481eb36006034b87349a8b27017e5dd51f074ee7d5c44411eb9ee6ae
Contents?: true
Size: 1.95 KB
Versions: 1
Compression:
Stored size: 1.95 KB
Contents
require "sinatra_client/version" require "rest-client" require "dotenv/load" require 'uri' class SinatraClient attr_accessor :current_user_id, :url def initialize(current_user_id = nil) @current_user_id = current_user_id @url = URI::HTTP.build(userinfo: "#{ENV['API_NAME']}:#{ENV['API_PASSWORD']}", host: ENV['SINATRA_HOST'], port: ENV['SINATRA_PORT'], path: '/api/v1') end def get_user_posts(user_id, page) url.path << "/users/#{user_id}/posts" url.query = URI.encode_www_form({ page: page }) parse RestClient.get(url.to_s) end def create_post(post) url.path << '/posts' parse RestClient.post(url.to_s, post) end def delete_post(post_id) url.path << "/posts/#{post_id}" url.query = URI.encode_www_form({ current_user: current_user_id }) parse RestClient.delete(url.to_s) end def delete_posts_for(postable_id, postable_type) url.path << "/postable/#{postable_id}/posts" url.query = URI.encode_www_form({ postable_type: postable_type }) parse RestClient.delete(url.to_s) end def get_group_posts(group_id) url.path << "/groups/#{group_id}/posts" parse RestClient.get(url.to_s) end def get_user_posts_comment(post_id) url.path << "/posts/#{post_id}/comments" parse RestClient.get(url.to_s) end def create_comment_for_post(post_id, comment) url.path << "/posts/#{post_id}/comments" parse RestClient.post(url.to_s, comment) end def delete_comment(post_id, comment_guid) url.path << "/posts/#{post_id}/comments/#{comment_guid}" url.query = URI.encode_www_form({ current_user: current_user_id }) parse RestClient.delete(url.to_s) end def create_or_delete_like(post_id, liker_id) url.path << "/posts/#{post_id}/toggle_like" parse RestClient.post(url.to_s, liker_id) end def get_likers(post_id) url.path << "/posts/#{post_id}/likers" parse RestClient.get(url.to_s) end private def parse(response) JSON.parse(response.body) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sinatra_client-0.0.4 | lib/sinatra_client.rb |