Class: PlatformSdk::PencilSpaces::Client
- Inherits:
 - 
      Object
      
        
- Object
 - PlatformSdk::PencilSpaces::Client
 
 
- Defined in:
 - lib/platform_sdk/pencil_spaces/client.rb
 
Overview
OneRoster Client which wraps the swagger generated OneRoster Management APIs
Constant Summary collapse
- VALID_API_USER_ROLES =
          
The API only supports these roles for API managed users
 %i[Teacher Student].freeze
- VALID_SPACE_ROLES =
          
The API only supports these roles for users in a space
 %i[host participant].freeze
- DEFAULT_VISIBILITY =
 "private"
Instance Attribute Summary collapse
- 
  
    
      #access_token  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute access_token.
 - 
  
    
      #base_url  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute base_url.
 - 
  
    
      #conn  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute conn.
 
Instance Method Summary collapse
- #analytics_session(session_id) ⇒ Object
 - 
  
    
      #analytics_sessions(opts = {})  ⇒ JSON 
    
    
  
  
  
  
  
  
  
  
  
    
Get a list of Session Analytics accessible by the account associated with your API key.
 - 
  
    
      #authorize_user(user_id, redirect_url: nil)  ⇒ JSON 
    
    
  
  
  
  
  
  
  
  
  
    
Create a login link for a user.
 - #create_api_user(name, role) ⇒ Object
 - 
  
    
      #create_space(title, hosts: [], participants: [], visibility: DEFAULT_VISIBILITY)  ⇒ JSON 
    
    
  
  
  
  
  
  
  
  
  
    
Create a new Space.
 - #end_ongoing_session(space_id) ⇒ Object
 - 
  
    
      #initialize(base_url, access_token, conn: nil)  ⇒ Client 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of Client.
 - 
  
    
      #space(space_id)  ⇒ JSON 
    
    
  
  
  
  
  
  
  
  
  
    
Get details for a particular Space.
 - 
  
    
      #spaces(opts = {})  ⇒ JSON 
    
    
  
  
  
  
  
  
  
  
  
    
Get a list of Spaces accessible by the account associated with your API key.
 - #update_space(space_id, title: nil) ⇒ Object
 - 
  
    
      #update_users_in_space(space_id, users_to_add: [], users_to_modify: [], users_to_remove: [])  ⇒ JSON 
    
    
  
  
  
  
  
  
  
  
  
    
Update users in a space.
 - 
  
    
      #user(user_id)  ⇒ JSON 
    
    
  
  
  
  
  
  
  
  
  
    
Get details for a particular User.
 - 
  
    
      #users(opts = {})  ⇒ JSON 
    
    
  
  
  
  
  
  
  
  
  
    
Get a list of Users accessible by the account associated with your API key.
 
Constructor Details
#initialize(base_url, access_token, conn: nil) ⇒ Client
Returns a new instance of Client.
      15 16 17 18 19  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 15 def initialize(base_url, access_token, conn: nil) @access_token = access_token @base_url = base_url @conn = conn || build_connection end  | 
  
Instance Attribute Details
#access_token ⇒ Object (readonly)
Returns the value of attribute access_token.
      7 8 9  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 7 def access_token @access_token end  | 
  
#base_url ⇒ Object (readonly)
Returns the value of attribute base_url.
      7 8 9  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 7 def base_url @base_url end  | 
  
#conn ⇒ Object (readonly)
Returns the value of attribute conn.
      7 8 9  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 7 def conn @conn end  | 
  
Instance Method Details
#analytics_session(session_id) ⇒ Object
      144 145 146 147 148 149  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 144 def analytics_session(session_id) raise ArgumentError, "session_id must have a value" if session_id.nil? response = get("/analytics/sessions/#{session_id}") response.body end  | 
  
#analytics_sessions(opts = {}) ⇒ JSON
Get a list of Session Analytics accessible by the account associated with your API key
      157 158 159 160 161 162 163 164 165 166  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 157 def analytics_sessions(opts = {}) # query parameters query_params = opts[:query_params] || {} query_params[:pageNumber] = opts[:page_number] unless opts[:page_number].nil? query_params[:pageSize] = opts[:page_size] unless opts[:page_size].nil? query_params[:filters] = Base64.strict_encode64(opts[:filters].to_json) unless opts[:filters].nil? response = get("/analytics/sessions", query_params) response.body end  | 
  
#authorize_user(user_id, redirect_url: nil) ⇒ JSON
Create a login link for a user
      94 95 96 97 98 99 100 101  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 94 def (user_id, redirect_url: nil) raise ArgumentError, "user_id must have a value" if user_id.nil? query_params = {} query_params[:redirectUrl] = redirect_url unless redirect_url.nil? response = get("/users/#{user_id}/authorize", query_params) response.body end  | 
  
#create_api_user(name, role) ⇒ Object
      103 104 105 106 107 108  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 103 def create_api_user(name, role) validate_api_user_role!(role) body = { name:, userRole: role } response = @conn.post("/users/createAPIUser", body.to_json) response.body end  | 
  
#create_space(title, hosts: [], participants: [], visibility: DEFAULT_VISIBILITY) ⇒ JSON
Create a new Space
      53 54 55 56 57 58 59 60 61 62 63  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 53 def create_space(title, hosts: [], participants: [], visibility: DEFAULT_VISIBILITY) body = { title:, visibility:, hosts: hosts.map(&:as_json), participants: participants.map(&:as_json), notifyInvitees: false } response = post("/spaces/create", body.to_json) response.body end  | 
  
#end_ongoing_session(space_id) ⇒ Object
      137 138 139 140 141 142  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 137 def end_ongoing_session(space_id) raise ArgumentError, "space_id must have a value" if space_id.nil? response = post("/spaces/#{space_id}/endOngoingSession", {}.to_json) response.body end  | 
  
#space(space_id) ⇒ JSON
Get details for a particular Space
      41 42 43 44 45  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 41 def space(space_id) resource_path = "/spaces/#{space_id}" response = get(resource_path) response.body end  | 
  
#spaces(opts = {}) ⇒ JSON
Get a list of Spaces accessible by the account associated with your API key
      27 28 29 30 31 32 33 34 35 36  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 27 def spaces(opts = {}) # query parameters query_params = opts[:query_params] || {} query_params[:pageNumber] = opts[:page_number] unless opts[:page_number].nil? query_params[:pageSize] = opts[:page_size] unless opts[:page_size].nil? query_params[:filters] = opts[:filters] unless opts[:filters].nil? response = get("/spaces", query_params) response.body end  | 
  
#update_space(space_id, title: nil) ⇒ Object
      130 131 132 133 134 135  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 130 def update_space(space_id, title: nil) validate_update_space_args(space_id, title) body = { space: { title: title } } response = patch("/spaces/#{space_id}", body.to_json) response.body end  | 
  
#update_users_in_space(space_id, users_to_add: [], users_to_modify: [], users_to_remove: []) ⇒ JSON
Update users in a space
      116 117 118 119 120 121 122 123 124 125 126 127 128  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 116 def update_users_in_space(space_id, users_to_add: [], users_to_modify: [], users_to_remove: []) validate_update_users_in_space_args!(space_id, users_to_add, users_to_modify, users_to_remove) body = { notifyInvitees: false, addUsers: users_to_add.map(&:as_json), modifyUsers: users_to_modify.map(&:as_json), removeUsers: users_to_remove.map(&:as_json) } response = patch("/spaces/#{space_id}/updateUsers", body.to_json) response.body end  | 
  
#user(user_id) ⇒ JSON
Get details for a particular User
      85 86 87 88  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 85 def user(user_id) response = get("/users/#{user_id}") response.body end  | 
  
#users(opts = {}) ⇒ JSON
Get a list of Users accessible by the account associated with your API key
      71 72 73 74 75 76 77 78 79 80  | 
    
      # File 'lib/platform_sdk/pencil_spaces/client.rb', line 71 def users(opts = {}) # query parameters query_params = opts[:query_params] || {} query_params[:pageNumber] = opts[:page_number] unless opts[:page_number].nil? query_params[:pageSize] = opts[:page_size] unless opts[:page_size].nil? query_params[:filters] = opts[:filters] unless opts[:filters].nil? response = get("/users", query_params) response.body end  |