Repository URL to install this package:
|
Version:
0.1.1 ▾
|
# frozen_string_literal: true
require_relative './endpoints/task'
require_relative './endpoints/message'
require_relative './endpoints/channel'
require_relative './endpoints/user'
module Kiwi
module Taskworld
# Taskworld Client
class Client
include HTTParty
include Taskworld::Endpoints::Task
include Taskworld::Endpoints::Message
include Taskworld::Endpoints::Channel
include Taskworld::Endpoints::User
base_uri 'https://asia-api.taskworld.com'
attr_accessor :space_id, :project_id, :list_id
def initialize(email: Taskworld.configuration.email,
password: Taskworld.configuration.password)
@space_id ||= Taskworld.configuration.space_id
@project_id ||= Taskworld.configuration.project_id
@list_id ||= Taskworld.configuration.list_id
auth(email, password)
end
private
def auth(email, password)
opts = {
email: email,
password: password
}.to_json
response = post('/v1/auth', body: opts)
@access_token = response.dig('access_token')
@default_space_id = response.dig('default_space_id')
@workspaces = response.dig('workspaces')
end
def post(uri, opts)
opts[:headers] = { 'Content-Type' => 'application/json' }
# logger.debug "Taskworld Request => POST #{uri} #{opts[:body]}"
resp = self.class.post(uri, opts)
# logger.debug "Taskworld Response => #{resp.code} #{resp}"
resp.parsed_response
end
end
end
end