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 |