Sha256: 345c7b7d9279c020ec58b099fe03d87eaaebb4a2fe9840bca8abf06903294c53
Contents?: true
Size: 1.97 KB
Versions: 7
Compression:
Stored size: 1.97 KB
Contents
module PlatformSdk module Central class Client attr_reader :access_token, :base_url, :conn def initialize(base_url, access_token, conn: nil) @access_token = access_token @base_url = base_url @conn = conn || build_connection end def user(uid) resource_path = "/api/users/#{uid}" response = get(resource_path) response.body end def teacher_enrollments(external_course_id = nil, partner_name = nil) resource_path = '/api/teacher_enrollments' if external_course_id.present? && partner_name.present? resource_path += "?external_course_id=#{external_course_id}&partner_name=#{partner_name}" end response = get(resource_path) response.body end def create_message(message_params: {}) resource_path = '/api/messages' response = post(resource_path, message_params) response.body end def orgs(roster_id: nil) resource_path = '/api/orgs' resource_path += "?roster_id=#{roster_id}" if roster_id response = get(resource_path) response.body end def notifications(**notification) resource_path = '/api/notifications' response = post(resource_path, notification) response.body end private def build_connection Faraday.new(@base_url) do |faraday| faraday.headers = default_headers faraday.adapter Faraday.default_adapter faraday.response :json, content_type: /\bjson$/, parser_options: { symbolize_names: true } faraday.response :raise_error end end def default_headers { 'Content-Type' => 'application/json', 'Authorization' => "Bearer #{access_token}" } end def get(path, params = {}) @conn.get(path, params) end def post(path, params = {}) @conn.post(path, params.to_json) end end end end
Version data entries
7 entries across 7 versions & 1 rubygems