class OrbitActivities::Request

Attributes

action[R]
activity_id[R]
api_key[R]
body[R]
filters[R]
member_id[R]
response[RW]
user_agent[R]
workspace_id[R]

Public Class Methods

new(params = {}) click to toggle source
# File lib/orbit_activities/request.rb, line 10
def initialize(params = {})
  @action = params.fetch(:action)
  @api_key = params.fetch(:api_key)
  @workspace_id = params.fetch(:workspace_id)
  @user_agent = params.fetch(:user_agent, "ruby-orbit-activities/#{OrbitActivities::VERSION}")
  @body = params.fetch(:body, nil)
  @filters = params.fetch(:filters, nil)
  @member_id = params.fetch(:member_id, nil)
  @activity_id = params.fetch(:activity_id, nil)
  @response = nil

  after_initialize!
end

Public Instance Methods

after_initialize!() click to toggle source
# File lib/orbit_activities/request.rb, line 24
def after_initialize!
  case @action
  when "new_activity"
    new_activity
  when "list_activities"
    list_activities
  when "get_activity"
    get_activity
  when "list_member_activities"
    list_member_activities
  when "create_post"
    create_post
  when "delete_post"
    delete_post
  when "update_activity"
    update_activity
  when "latest_activity_timestamp"
    latest_activity_timestamp
  else
    raise ArgumentError,
          "Activity type is unrecognized. Must be one of: new_activity, list_activities, get_activity, list_member_activities, create_post, delete_post, update_activity"
  end
end
create_post() click to toggle source
# File lib/orbit_activities/request.rb, line 102
def create_post
  @response = OrbitActivities::HTTP.post(
    url: "https://app.orbit.love/api/v1/#{@workspace_id}/members/#{@member_id}/activities",
    user_agent: @user_agent,
    api_key: @api_key,
    body: @body
  )
end
delete_post() click to toggle source
# File lib/orbit_activities/request.rb, line 111
def delete_post
  @response = OrbitActivities::HTTP.delete(
    url: "https://app.orbit.love/api/v1/#{@workspace_id}/members/#{@member_id}/activities/#{@activity_id}",
    user_agent: @user_agent,
    api_key: @api_key
  )
end
get_activity() click to toggle source
# File lib/orbit_activities/request.rb, line 85
def get_activity
  @response = OrbitActivities::HTTP.get(
    url: "https://app.orbit.love/api/v1/#{@workspace_id}/activities/#{@activity_id}",
    user_agent: @user_agent,
    api_key: @api_key
  )
end
latest_activity_timestamp() click to toggle source
# File lib/orbit_activities/request.rb, line 66
def latest_activity_timestamp
  filters = {
    items: 10,
    direction: "DESC"
  }
  filters.merge!(@filters)

  response = OrbitActivities::HTTP.get(
    url: "https://app.orbit.love/api/v1/#{@workspace_id}/activities",
    user_agent: @user_agent,
    api_key: @api_key,
    filters: filters
  )

  return nil if response["data"].nil? || response["data"].empty?

  @response = response["data"][0]["attributes"]["created_at"]
end
list_activities() click to toggle source
# File lib/orbit_activities/request.rb, line 57
def list_activities
  @response = OrbitActivities::HTTP.get(
    url: "https://app.orbit.love/api/v1/#{@workspace_id}/activities",
    user_agent: @user_agent,
    api_key: @api_key,
    filters: @filters
  )
end
list_member_activities() click to toggle source
# File lib/orbit_activities/request.rb, line 93
def list_member_activities
  @response = OrbitActivities::HTTP.get(
    url: "https://app.orbit.love/api/v1/#{@workspace_id}/members/#{@member_id}/activities",
    user_agent: @user_agent,
    api_key: @api_key,
    filters: @filters
  )
end
new_activity() click to toggle source
# File lib/orbit_activities/request.rb, line 48
def new_activity
  @response = OrbitActivities::HTTP.post(
    url: "https://app.orbit.love/api/v1/#{@workspace_id}/activities",
    user_agent: @user_agent,
    api_key: @api_key,
    body: @body
  )
end
update_activity() click to toggle source
# File lib/orbit_activities/request.rb, line 119
def update_activity
  @response = OrbitActivities::HTTP.put(
    url: "https://app.orbit.love/api/v1/#{@workspace_id}/members/#{@member_id}/activities/#{@activity_id}",
    user_agent: @user_agent,
    api_key: @api_key,
    body: @body
  )
end