Skip to content

riipen/one-mentor-ruby

Repository files navigation

one-mentor-ruby

A GraphQL client for 1Mentor in ruby.

Installation

Add to your Gemfile:

gem 'one-mentor-ruby'

Then bundle install.

Usage

API Client

The 1Mentor API client uses an API key to authenticate API requests.

To obtain an API key talk to your 1Mentor representative.

Then you can create a 1MEntor API client.

client = OneMentor::Client.new(
    api_key: 'my_key',
    subdomain: 'my-subdomain' # Your API instance subdomain
    timeout: 30, # Optional setting for timeouts of all requests (default 60)
)

API Endpoints

1Mentor currently does not have any public facing documantion available, so support for endpoints is limited.

List learner career objectives

Example: client.learner_career_objectives(email@learner.com)

Returns the following array

[
  {
    "occupation": "Occupation A",
    "gaps": ["Skill A", "Skill B", "Skill C"]
  },
]

Check learner

Example: client.learner_exists(email@learner.com)

Returns true if the email address is tied to a learner account, false otherwise.

Relalted occupations

Example: client.occupations_related('Neurosurgery')

Returns the following array

[
  {
    "occupation": "Occupation A",
    "skillSet": ["Skill A", "Skill B", "Skill C"]
  },
]

Custom requests

Because the 1Mentor API is a wrapper on top of a GraphQL API, adhoc requests can be made using the applicable GraphQL syntax.

Example:

query = <<~GRAPHQL
        query GetLearnerCareerObjectivesAndSkillGaps($studentEmail: NonEmptyString!)
        {
          getLearnerCareerObjectivesAndSkillGaps(studentEmail: $studentEmail) {
            status
            message
          }
        }
      GRAPHQL

client.request({
  operationName: 'GetLearnerCareerObjectivesAndSkillGaps',
  query:,
  variables: {
    studentEmail: email
  },
})

Custom requests will return the raw data structure from 1Mentor in this form:

{
  "data": {
    "getLearnerCareerObjectivesAndSkillGaps": {
      "status": true,
      "message": ""
    }
  }
}

Pagination

1Mentor does not currently support pagination.

Errors

Any error code returned by the OneMentor API will result in one of the following expections

Code Exception
400 OneMentor::BadRequest
401 OneMentor::Unauthorized
403 OneMentor::Forbidden
404 OneMentor::NotFound
429 OneMentor::TooManyRequests
400...499 OneMentor::ClientError
500 OneMentor::InternalServerError
502 OneMentor::BadGateway
503 OneMentor::ServiceUnavailable
500...599 OneMentor::ServerError

About

A GraphQL client for 1Mentor in ruby

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages