Module: FlatApi

Defined in:
lib/flat_api/oauth.rb,
lib/flat_api.rb,
lib/flat_api/retry.rb,
lib/flat_api/client.rb,
lib/flat_api/errors.rb,
lib/flat_api/version.rb,
lib/flat_api/api_error.rb,
lib/flat_api/api_client.rb,
lib/flat_api/pagination.rb,
lib/flat_api/api/omr_api.rb,
lib/flat_api/models/task.rb,
lib/flat_api/api/task_api.rb,
lib/flat_api/api/user_api.rb,
lib/flat_api/models/grade.rb,
lib/flat_api/models/group.rb,
lib/flat_api/api/class_api.rb,
lib/flat_api/api/group_api.rb,
lib/flat_api/api/score_api.rb,
lib/flat_api/configuration.rb,
lib/flat_api/api_model_base.rb,
lib/flat_api/models/omr_job.rb,
lib/flat_api/api/account_api.rb,
lib/flat_api/models/lms_name.rb,
lib/flat_api/models/app_scopes.rb,
lib/flat_api/models/assignment.rb,
lib/flat_api/models/collection.rb,
lib/flat_api/models/group_type.rb,
lib/flat_api/models/score_fork.rb,
lib/flat_api/api/collection_api.rb,
lib/flat_api/models/class_roles.rb,
lib/flat_api/models/class_state.rb,
lib/flat_api/models/edu_library.rb,
lib/flat_api/models/score_track.rb,
lib/flat_api/models/task_result.rb,
lib/flat_api/models/user_basics.rb,
lib/flat_api/models/user_public.rb,
lib/flat_api/models/class_update.rb,
lib/flat_api/models/edu_resource.rb,
lib/flat_api/models/license_mode.rb,
lib/flat_api/models/score_source.rb,
lib/flat_api/models/user_details.rb,
lib/flat_api/api/organization_api.rb,
lib/flat_api/models/class_details.rb,
lib/flat_api/models/group_details.rb,
lib/flat_api/models/omr_step_name.rb,
lib/flat_api/models/score_comment.rb,
lib/flat_api/models/score_details.rb,
lib/flat_api/models/score_license.rb,
lib/flat_api/models/score_privacy.rb,
lib/flat_api/models/score_summary.rb,
lib/flat_api/models/task_progress.rb,
lib/flat_api/models/user_creation.rb,
lib/flat_api/api/edu_resources_api.rb,
lib/flat_api/models/class_creation.rb,
lib/flat_api/models/collection_app.rb,
lib/flat_api/models/group_creation.rb,
lib/flat_api/models/omr_job_output.rb,
lib/flat_api/models/omr_job_result.rb,
lib/flat_api/models/omr_job_status.rb,
lib/flat_api/models/score_creation.rb,
lib/flat_api/models/score_revision.rb,
lib/flat_api/models/teaching_theme.rb,
lib/flat_api/models/tutteo_product.rb,
lib/flat_api/models/assignment_copy.rb,
lib/flat_api/models/assignment_type.rb,
lib/flat_api/models/collection_type.rb,
lib/flat_api/models/license_sources.rb,
lib/flat_api/models/lti_credentials.rb,
lib/flat_api/models/resource_rights.rb,
lib/flat_api/models/api_access_token.rb,
lib/flat_api/models/assignment_group.rb,
lib/flat_api/models/class_assignment.rb,
lib/flat_api/models/media_attachment.rb,
lib/flat_api/models/omr_capabilities.rb,
lib/flat_api/models/omr_job_creation.rb,
lib/flat_api/models/omr_job_progress.rb,
lib/flat_api/models/omr_pending_step.rb,
lib/flat_api/models/score_track_type.rb,
lib/flat_api/models/user_signin_link.rb,
lib/flat_api/models/assignment_update.rb,
lib/flat_api/models/class_details_lti.rb,
lib/flat_api/models/class_details_mfc.rb,
lib/flat_api/models/class_grade_level.rb,
lib/flat_api/models/edu_resource_copy.rb,
lib/flat_api/models/edu_resource_move.rb,
lib/flat_api/models/edu_resource_type.rb,
lib/flat_api/models/lti_configuration.rb,
lib/flat_api/models/omr_job_retention.rb,
lib/flat_api/models/score_track_point.rb,
lib/flat_api/models/score_track_state.rb,
lib/flat_api/models/user_admin_update.rb,
lib/flat_api/models/collection_privacy.rb,
lib/flat_api/models/credit_transaction.rb,
lib/flat_api/models/omr_job_input_file.rb,
lib/flat_api/models/omr_locale_details.rb,
lib/flat_api/models/organization_roles.rb,
lib/flat_api/models/score_likes_counts.rb,
lib/flat_api/models/score_modification.rb,
lib/flat_api/models/score_plays_counts.rb,
lib/flat_api/models/score_track_update.rb,
lib/flat_api/models/score_views_counts.rb,
lib/flat_api/models/user_azure_details.rb,
lib/flat_api/models/user_details_admin.rb,
lib/flat_api/models/collection_contents.rb,
lib/flat_api/models/collection_creation.rb,
lib/flat_api/models/edu_resource_folder.rb,
lib/flat_api/models/edu_resource_update.rb,
lib/flat_api/models/flat_error_response.rb,
lib/flat_api/models/omr_job_file_upload.rb,
lib/flat_api/models/score_creation_type.rb,
lib/flat_api/models/score_track_purpose.rb,
lib/flat_api/models/task_export_options.rb,
lib/flat_api/models/user_public_summary.rb,
lib/flat_api/models/class_details_canvas.rb,
lib/flat_api/models/class_details_clever.rb,
lib/flat_api/models/class_details_issues.rb,
lib/flat_api/models/edu_resource_privacy.rb,
lib/flat_api/models/lti_configuration1p1.rb,
lib/flat_api/models/lti_configuration1p3.rb,
lib/flat_api/models/rename_group_request.rb,
lib/flat_api/models/score_comment_update.rb,
lib/flat_api/models/score_track_creation.rb,
lib/flat_api/models/assignment_submission.rb,
lib/flat_api/models/edu_resource_creation.rb,
lib/flat_api/models/edu_resource_lti_link.rb,
lib/flat_api/models/edu_resource_resource.rb,
lib/flat_api/models/omr_details_step_data.rb,
lib/flat_api/models/omr_imported_metadata.rb,
lib/flat_api/models/omr_job_file_metadata.rb,
lib/flat_api/models/resource_collaborator.rb,
lib/flat_api/models/score_comment_context.rb,
lib/flat_api/models/score_comments_counts.rb,
lib/flat_api/models/score_creation_common.rb,
lib/flat_api/models/add_group_user_request.rb,
lib/flat_api/models/lti_configuration_base.rb,
lib/flat_api/models/omr_details_submission.rb,
lib/flat_api/models/score_comment_creation.rb,
lib/flat_api/models/assignment_capabilities.rb,
lib/flat_api/models/class_assignment_update.rb,
lib/flat_api/models/collection_capabilities.rb,
lib/flat_api/models/collection_modification.rb,
lib/flat_api/models/omr_detected_instrument.rb,
lib/flat_api/models/omr_instrument_override.rb,
lib/flat_api/models/organization_invitation.rb,
lib/flat_api/models/score_details_all_of_me.rb,
lib/flat_api/models/score_revision_creation.rb,
lib/flat_api/models/assignment_copy_response.rb,
lib/flat_api/models/assignment_copy_to_class.rb,
lib/flat_api/models/lti_configuration_create.rb,
lib/flat_api/models/lti_configuration_update.rb,
lib/flat_api/models/lti_credentials_creation.rb,
lib/flat_api/models/media_score_sharing_mode.rb,
lib/flat_api/models/score_comment_moderation.rb,
lib/flat_api/models/assignment_submission_lti.rb,
lib/flat_api/models/class_attachment_creation.rb,
lib/flat_api/models/edu_resource_capabilities.rb,
lib/flat_api/models/edu_resource_use_in_class.rb,
lib/flat_api/models/lti_configuration1p3_base.rb,
lib/flat_api/models/score_revision_statistics.rb,
lib/flat_api/models/user_signin_link_creation.rb,
lib/flat_api/models/add_group_user200_response.rb,
lib/flat_api/models/class_details_google_drive.rb,
lib/flat_api/models/microsoft_graph_assignment.rb,
lib/flat_api/models/microsoft_graph_submission.rb,
lib/flat_api/models/omr_job_file_upload_result.rb,
lib/flat_api/models/score_creation_file_import.rb,
lib/flat_api/models/assignment_submission_state.rb,
lib/flat_api/models/class_assignment_all_of_lti.rb,
lib/flat_api/models/class_assignment_all_of_mfc.rb,
lib/flat_api/models/google_classroom_coursework.rb,
lib/flat_api/models/google_classroom_submission.rb,
lib/flat_api/models/lti_configuration1p3_manual.rb,
lib/flat_api/models/lti_configuration_create1p1.rb,
lib/flat_api/models/score_creation_builder_data.rb,
lib/flat_api/models/assignment_submission_update.rb,
lib/flat_api/models/lti_configuration1p3_dynamic.rb,
lib/flat_api/models/user_community_profile_links.rb,
lib/flat_api/models/assignment_submission_comment.rb,
lib/flat_api/models/assignment_submission_history.rb,
lib/flat_api/models/class_details_microsoft_graph.rb,
lib/flat_api/models/score_track_creation_response.rb,
lib/flat_api/models/assignment_submission_comments.rb,
lib/flat_api/models/assignment_submission_playback.rb,
lib/flat_api/models/class_assignment_all_of_canvas.rb,
lib/flat_api/models/class_details_google_classroom.rb,
lib/flat_api/models/lti_configuration1p3_base_tool.rb,
lib/flat_api/models/resource_collaborator_creation.rb,
lib/flat_api/models/class_details_issues_sync_inner.rb,
lib/flat_api/models/lti_configuration1p3_deployment.rb,
lib/flat_api/models/edu_resource_assignment_creation.rb,
lib/flat_api/models/lti_configuration1p1_all_of_tool.rb,
lib/flat_api/models/organization_invitation_creation.rb,
lib/flat_api/models/user_details_admin_all_of_license.rb,
lib/flat_api/models/lti_configuration_create1p3_manual.rb,
lib/flat_api/models/score_creation_google_drive_import.rb,
lib/flat_api/models/assignment_copy_to_resource_library.rb,
lib/flat_api/models/assignment_submission_history_state.rb,
lib/flat_api/models/assignment_submission_students_mode.rb,
lib/flat_api/models/lti_configuration_create1p3_dynamic.rb,
lib/flat_api/models/lti_configuration_update_deployment.rb,
lib/flat_api/models/lti_configuration_update_standalone.rb,
lib/flat_api/models/assignment_submission_comment_creation.rb,
lib/flat_api/models/lti_configuration_create1p3_deployment.rb,
lib/flat_api/models/organization_user_access_token_creation.rb,
lib/flat_api/models/assignment_submission_history_attachment.rb,
lib/flat_api/models/lti_configuration1p3_base_supported_services.rb,
lib/flat_api/models/class_assignment_update_all_of_microsoft_graph.rb,
lib/flat_api/models/class_assignment_update_all_of_google_classroom.rb,
lib/flat_api/models/score_creation_builder_data_all_of_builder_data.rb,
lib/flat_api/models/lti_configuration1p3_base_supported_services_ags.rb,
lib/flat_api/models/lti_configuration1p3_base_supported_services_nrps.rb,
lib/flat_api/models/lti_configuration_create1p3_dynamic_platform_info.rb,
lib/flat_api/models/assignment_capabilities_can_publish_in_class_error.rb,
lib/flat_api/models/lti_configuration1p3_base_supported_services_deep_linking.rb,
lib/flat_api/models/score_creation_builder_data_all_of_builder_data_score_data.rb,
lib/flat_api/models/score_creation_builder_data_all_of_builder_data_layout_data.rb,
lib/flat_api/models/score_creation_builder_data_all_of_builder_data_score_data_instruments.rb

Overview

#Flat API

#The Flat API allows you to easily extend the abilities of the Flat Platform, with a wide range of use cases including the following: * Creating and importing new music scores using MusicXML, MIDI, Guitar Pro, MuseScore, ABC notation, and many other formats * Browsing, updating, copying, exporting the user's scores (for example in MP3, WAV or MIDI) * Managing educational resources with Flat for Education: creating & updating the organization accounts, the classes, rosters and assignments. The Flat API is built on HTTP. Our API is RESTful: it has predictable resource URLs. It returns HTTP response codes to indicate errors. It also accepts and returns JSON in the HTTP body. The schema of this API follows the OpenAPI Initiative (OAI) specification, you can use and work with compatible Swagger tools. This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with W3C spec. You can use your favorite HTTP/REST library for your programming language to use Flat's API. This specification and reference are available on GitHub. Getting Started and learn more: * API Overview and introduction * Authentication (Personal Access Tokens or OAuth2) * SDKs * Rate Limits * Changelog

The version of the OpenAPI document: 2.26.2 Contact: [email protected] Generated by: https://openapi-generator.tech Generator version: 7.24.0

Defined Under Namespace

Modules: AssignmentCopy, EduResourceResource, LtiConfiguration, LtiConfiguration1p3, LtiConfigurationCreate, LtiConfigurationUpdate, Pagination, ScoreCreation Classes: AccountApi, AddGroupUser200Response, AddGroupUserRequest, ApiAccessToken, ApiClient, ApiError, ApiModelBase, AppScopes, Assignment, AssignmentCapabilities, AssignmentCapabilitiesCanPublishInClassError, AssignmentCopyResponse, AssignmentCopyToClass, AssignmentCopyToResourceLibrary, AssignmentGroup, AssignmentSubmission, AssignmentSubmissionComment, AssignmentSubmissionCommentCreation, AssignmentSubmissionComments, AssignmentSubmissionHistory, AssignmentSubmissionHistoryAttachment, AssignmentSubmissionHistoryState, AssignmentSubmissionLti, AssignmentSubmissionPlayback, AssignmentSubmissionState, AssignmentSubmissionStudentsMode, AssignmentSubmissionUpdate, AssignmentType, AssignmentUpdate, ClassApi, ClassAssignment, ClassAssignmentAllOfCanvas, ClassAssignmentAllOfLti, ClassAssignmentAllOfMfc, ClassAssignmentUpdate, ClassAssignmentUpdateAllOfGoogleClassroom, ClassAssignmentUpdateAllOfMicrosoftGraph, ClassAttachmentCreation, ClassCreation, ClassDetails, ClassDetailsCanvas, ClassDetailsClever, ClassDetailsGoogleClassroom, ClassDetailsGoogleDrive, ClassDetailsIssues, ClassDetailsIssuesSyncInner, ClassDetailsLti, ClassDetailsMfc, ClassDetailsMicrosoftGraph, ClassGradeLevel, ClassRoles, ClassState, ClassUpdate, Collection, CollectionApi, CollectionApp, CollectionCapabilities, CollectionContents, CollectionCreation, CollectionModification, CollectionPrivacy, CollectionType, Configuration, CreditTransaction, EduLibrary, EduResource, EduResourceAssignmentCreation, EduResourceCapabilities, EduResourceCopy, EduResourceCreation, EduResourceFolder, EduResourceLtiLink, EduResourceMove, EduResourcePrivacy, EduResourceType, EduResourceUpdate, EduResourceUseInClass, EduResourcesApi, FlatAuthenticationError, FlatAuthorizationError, FlatClient, FlatError, FlatErrorResponse, FlatNotFoundError, FlatQuotaError, FlatRateLimitError, FlatServerError, FlatValidationError, GoogleClassroomCoursework, GoogleClassroomSubmission, Grade, Group, GroupApi, GroupCreation, GroupDetails, GroupType, LicenseMode, LicenseSources, LmsName, LtiConfiguration1p1, LtiConfiguration1p1AllOfTool, LtiConfiguration1p3Base, LtiConfiguration1p3BaseSupportedServices, LtiConfiguration1p3BaseSupportedServicesAgs, LtiConfiguration1p3BaseSupportedServicesDeepLinking, LtiConfiguration1p3BaseSupportedServicesNrps, LtiConfiguration1p3BaseTool, LtiConfiguration1p3Deployment, LtiConfiguration1p3Dynamic, LtiConfiguration1p3Manual, LtiConfigurationBase, LtiConfigurationCreate1p1, LtiConfigurationCreate1p3Deployment, LtiConfigurationCreate1p3Dynamic, LtiConfigurationCreate1p3DynamicPlatformInfo, LtiConfigurationCreate1p3Manual, LtiConfigurationUpdateDeployment, LtiConfigurationUpdateStandalone, LtiCredentials, LtiCredentialsCreation, MediaAttachment, MediaScoreSharingMode, MicrosoftGraphAssignment, MicrosoftGraphSubmission, OAuth2Helper, OMRApi, OmrCapabilities, OmrDetailsStepData, OmrDetailsSubmission, OmrDetectedInstrument, OmrImportedMetadata, OmrInstrumentOverride, OmrJob, OmrJobCreation, OmrJobFileMetadata, OmrJobFileUpload, OmrJobFileUploadResult, OmrJobInputFile, OmrJobOutput, OmrJobProgress, OmrJobResult, OmrJobRetention, OmrJobStatus, OmrLocaleDetails, OmrPendingStep, OmrStepName, OrganizationApi, OrganizationInvitation, OrganizationInvitationCreation, OrganizationRoles, OrganizationUserAccessTokenCreation, RenameGroupRequest, ResourceCollaborator, ResourceCollaboratorCreation, ResourceRights, RetryPolicy, ScoreApi, ScoreComment, ScoreCommentContext, ScoreCommentCreation, ScoreCommentModeration, ScoreCommentUpdate, ScoreCommentsCounts, ScoreCreationBuilderData, ScoreCreationBuilderDataAllOfBuilderData, ScoreCreationBuilderDataAllOfBuilderDataLayoutData, ScoreCreationBuilderDataAllOfBuilderDataScoreData, ScoreCreationBuilderDataAllOfBuilderDataScoreDataInstruments, ScoreCreationCommon, ScoreCreationFileImport, ScoreCreationGoogleDriveImport, ScoreCreationType, ScoreDetails, ScoreDetailsAllOfMe, ScoreFork, ScoreLicense, ScoreLikesCounts, ScoreModification, ScorePlaysCounts, ScorePrivacy, ScoreRevision, ScoreRevisionCreation, ScoreRevisionStatistics, ScoreSource, ScoreSummary, ScoreTrack, ScoreTrackCreation, ScoreTrackCreationResponse, ScoreTrackPoint, ScoreTrackPurpose, ScoreTrackState, ScoreTrackType, ScoreTrackUpdate, ScoreViewsCounts, Task, TaskApi, TaskExportOptions, TaskProgress, TaskResult, TeachingTheme, TokenManager, Tokens, TutteoProduct, UserAdminUpdate, UserApi, UserAzureDetails, UserBasics, UserCommunityProfileLinks, UserCreation, UserDetails, UserDetailsAdmin, UserDetailsAdminAllOfLicense, UserPublic, UserPublicSummary, UserSigninLink, UserSigninLinkCreation

Constant Summary collapse

AUTHORIZE_URL =
'https://flat.io/auth/oauth'
TOKEN_URL =
'https://api.flat.io/oauth/access_token'
EXPIRY_SKEW =

Refresh slightly before nominal expiry, to avoid racing the server clock.

30
IDEMPOTENT_METHODS =

Methods safe to replay. A non-idempotent request that may already have been applied is not.

%w[GET HEAD OPTIONS PUT DELETE].freeze
MAX_RATE_LIMIT_WAIT =
300.0
RATE_LIMIT_CODE =
'API_RATE_LIMIT_EXCEEDED'
QUOTA_CODES =
%w[QUOTA_EXCEEDED CREDITS_EXHAUSTED OMR_CREDITS_EXHAUSTED].freeze
VERSION =
'1.0.1'

Class Method Summary collapse

Class Method Details

.configure ⇒ Object

Customize default settings for the SDK using block. FlatApi.configure do |config| config.username = "xxx" config.password = "xxx" end If no block given, return the default Configuration object.



246
247
248
249
250
251
252
# File 'lib/flat_api.rb', line 246

def configure
  if block_given?
    yield(Configuration.default)
  else
    Configuration.default
  end
end

.error_from_response(status, body, headers = {}) ⇒ Object

Build the right error for a non-2xx response.



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/flat_api/errors.rb', line 67

def self.error_from_response(status, body, headers = {})
  payload = body.is_a?(Hash) ? body : {}
  code = payload['code'] || payload[:code]
  message = payload['message'] || payload[:message] || "HTTP #{status}"
  opts = {
    status: status, code: code, request_id: payload['id'] || payload[:id],
    headers: headers, body: body
  }

  return FlatRateLimitError.new(message, **opts) if status == 403 && code == RATE_LIMIT_CODE
  return FlatQuotaError.new(message, **opts) if QUOTA_CODES.include?(code)
  return FlatAuthenticationError.new(message, **opts) if status == 401
  return FlatAuthorizationError.new(message, **opts) if status == 403
  return FlatNotFoundError.new(message, **opts) if status == 404
  return FlatValidationError.new(message, **opts) if [400, 422].include?(status)
  return FlatServerError.new(message, **opts) if status >= 500

  FlatError.new(message, **opts)
end