flat_api 0.1.2 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/flat_api/api/account_api.rb +31 -21
- data/lib/flat_api/api/class_api.rb +1405 -405
- data/lib/flat_api/api/collection_api.rb +684 -0
- data/lib/flat_api/api/edu_resources_api.rb +851 -0
- data/lib/flat_api/api/group_api.rb +81 -55
- data/lib/flat_api/api/organization_api.rb +524 -180
- data/lib/flat_api/api/score_api.rb +1034 -570
- data/lib/flat_api/api/task_api.rb +85 -0
- data/lib/flat_api/api/user_api.rb +114 -76
- data/lib/flat_api/api_client.rb +112 -107
- data/lib/flat_api/api_error.rb +24 -4
- data/lib/flat_api/configuration.rb +105 -16
- data/lib/flat_api/models/api_access_token.rb +268 -0
- data/lib/flat_api/models/app_scopes.rb +59 -0
- data/lib/flat_api/models/assignment.rb +192 -101
- data/lib/flat_api/models/assignment_capabilities.rb +283 -0
- data/lib/flat_api/models/assignment_capabilities_can_publish_in_class_error.rb +240 -0
- data/lib/flat_api/models/assignment_copy.rb +80 -169
- data/lib/flat_api/models/assignment_copy_response.rb +430 -0
- data/lib/flat_api/models/assignment_copy_to_class.rb +243 -0
- data/lib/flat_api/models/assignment_copy_to_resource_library.rb +233 -0
- data/lib/flat_api/models/assignment_submission.rb +249 -66
- data/lib/flat_api/models/assignment_submission_comment.rb +276 -0
- data/lib/flat_api/models/assignment_submission_comment_creation.rb +223 -0
- data/lib/flat_api/models/assignment_submission_comments.rb +225 -0
- data/lib/flat_api/models/assignment_submission_history.rb +384 -0
- data/lib/flat_api/models/assignment_submission_history_attachment.rb +235 -0
- data/lib/flat_api/models/assignment_submission_history_state.rb +43 -0
- data/lib/flat_api/models/assignment_submission_lti.rb +222 -0
- data/lib/flat_api/models/assignment_submission_playback_inner.rb +240 -0
- data/lib/flat_api/models/assignment_submission_state.rb +42 -0
- data/lib/flat_api/models/assignment_submission_update.rb +150 -50
- data/lib/flat_api/models/assignment_type.rb +44 -0
- data/lib/flat_api/models/assignment_update.rb +407 -0
- data/lib/flat_api/models/class_assignment.rb +613 -0
- data/lib/flat_api/models/class_assignment_all_of_canvas.rb +226 -0
- data/lib/flat_api/models/class_assignment_all_of_lti.rb +216 -0
- data/lib/flat_api/models/class_assignment_all_of_mfc.rb +226 -0
- data/lib/flat_api/models/class_assignment_update.rb +509 -0
- data/lib/flat_api/models/class_assignment_update_all_of_google_classroom.rb +217 -0
- data/lib/flat_api/models/class_assignment_update_all_of_microsoft_graph.rb +219 -0
- data/lib/flat_api/models/class_attachment_creation.rb +110 -41
- data/lib/flat_api/models/class_creation.rb +144 -43
- data/lib/flat_api/models/class_details.rb +175 -60
- data/lib/flat_api/models/class_details_canvas.rb +61 -34
- data/lib/flat_api/models/class_details_clever.rb +76 -48
- data/lib/flat_api/models/class_details_google_classroom.rb +66 -59
- data/lib/flat_api/models/class_details_google_drive.rb +63 -36
- data/lib/flat_api/models/class_details_issues.rb +218 -0
- data/lib/flat_api/models/class_details_issues_sync_inner.rb +270 -0
- data/lib/flat_api/models/class_details_lti.rb +65 -38
- data/lib/flat_api/models/class_details_mfc.rb +226 -0
- data/lib/flat_api/models/class_details_microsoft_graph.rb +215 -0
- data/lib/flat_api/models/class_grade_level.rb +43 -0
- data/lib/flat_api/models/class_roles.rb +18 -9
- data/lib/flat_api/models/class_state.rb +18 -9
- data/lib/flat_api/models/class_update.rb +144 -42
- data/lib/flat_api/models/collection.rb +373 -0
- data/lib/flat_api/models/collection_app.rb +236 -0
- data/lib/flat_api/models/collection_capabilities.rb +291 -0
- data/lib/flat_api/models/collection_creation.rb +288 -0
- data/lib/flat_api/models/collection_modification.rb +275 -0
- data/lib/flat_api/models/collection_privacy.rb +39 -0
- data/lib/flat_api/models/collection_type.rb +44 -0
- data/lib/flat_api/models/edu_library.rb +292 -0
- data/lib/flat_api/models/edu_resource.rb +366 -0
- data/lib/flat_api/models/edu_resource_capabilities.rb +236 -0
- data/lib/flat_api/models/edu_resource_copy.rb +223 -0
- data/lib/flat_api/models/edu_resource_creation.rb +301 -0
- data/lib/flat_api/models/edu_resource_folder.rb +216 -0
- data/lib/flat_api/models/edu_resource_lti_link.rb +223 -0
- data/lib/flat_api/models/edu_resource_move.rb +223 -0
- data/lib/flat_api/models/edu_resource_privacy.rb +41 -0
- data/lib/flat_api/models/edu_resource_resource.rb +105 -0
- data/lib/flat_api/models/edu_resource_type.rb +40 -0
- data/lib/flat_api/models/edu_resource_update.rb +277 -0
- data/lib/flat_api/models/edu_resource_use_in_class.rb +233 -0
- data/lib/flat_api/models/flat_error_response.rb +79 -38
- data/lib/flat_api/models/flat_locales.rb +30 -10
- data/lib/flat_api/models/google_classroom_coursework.rb +76 -38
- data/lib/flat_api/models/google_classroom_submission.rb +84 -36
- data/lib/flat_api/models/group.rb +72 -44
- data/lib/flat_api/models/group_details.rb +92 -43
- data/lib/flat_api/models/group_type.rb +18 -9
- data/lib/flat_api/models/license_mode.rb +18 -9
- data/lib/flat_api/models/license_sources.rb +21 -9
- data/lib/flat_api/models/lms_name.rb +19 -9
- data/lib/flat_api/models/lti_credentials.rb +95 -46
- data/lib/flat_api/models/lti_credentials_creation.rb +91 -38
- data/lib/flat_api/models/media_attachment.rb +167 -70
- data/lib/flat_api/models/media_score_sharing_mode.rb +19 -9
- data/lib/flat_api/models/microsoft_graph_assignment.rb +248 -0
- data/lib/flat_api/models/microsoft_graph_submission.rb +240 -0
- data/lib/flat_api/models/organization_invitation.rb +139 -44
- data/lib/flat_api/models/organization_invitation_creation.rb +99 -35
- data/lib/flat_api/models/organization_roles.rb +18 -9
- data/lib/flat_api/models/organization_user_access_token_creation.rb +225 -0
- data/lib/flat_api/models/resource_collaborator.rb +403 -0
- data/lib/flat_api/models/{score_collaborator_creation.rb → resource_collaborator_creation.rb} +85 -48
- data/lib/flat_api/models/resource_rights.rb +318 -0
- data/lib/flat_api/models/score_comment.rb +93 -56
- data/lib/flat_api/models/score_comment_context.rb +103 -59
- data/lib/flat_api/models/score_comment_creation.rb +70 -41
- data/lib/flat_api/models/score_comment_moderation.rb +260 -0
- data/lib/flat_api/models/score_comment_update.rb +82 -49
- data/lib/flat_api/models/score_comments_counts.rb +67 -40
- data/lib/flat_api/models/score_creation.rb +81 -215
- data/lib/flat_api/models/score_creation_builder_data.rb +298 -0
- data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data.rb +230 -0
- data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data_layout_data.rb +322 -0
- data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data_score_data.rb +274 -0
- data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data_score_data_instruments.rb +269 -0
- data/lib/flat_api/models/score_creation_common.rb +268 -0
- data/lib/flat_api/models/score_creation_file_import.rb +324 -0
- data/lib/flat_api/models/score_creation_google_drive_import.rb +291 -0
- data/lib/flat_api/models/score_creation_type.rb +19 -9
- data/lib/flat_api/models/score_details.rb +274 -83
- data/lib/flat_api/models/score_fork.rb +94 -32
- data/lib/flat_api/models/score_license.rb +19 -9
- data/lib/flat_api/models/score_likes_counts.rb +83 -35
- data/lib/flat_api/models/score_modification.rb +175 -52
- data/lib/flat_api/models/score_plays_counts.rb +236 -0
- data/lib/flat_api/models/score_privacy.rb +18 -9
- data/lib/flat_api/models/score_revision.rb +80 -43
- data/lib/flat_api/models/score_revision_creation.rb +105 -40
- data/lib/flat_api/models/score_revision_statistics.rb +83 -36
- data/lib/flat_api/models/score_source.rb +61 -35
- data/lib/flat_api/models/score_summary.rb +124 -40
- data/lib/flat_api/models/score_track.rb +172 -51
- data/lib/flat_api/models/score_track_creation.rb +101 -39
- data/lib/flat_api/models/score_track_point.rb +70 -38
- data/lib/flat_api/models/score_track_purpose.rb +40 -0
- data/lib/flat_api/models/score_track_state.rb +18 -9
- data/lib/flat_api/models/score_track_type.rb +18 -9
- data/lib/flat_api/models/score_track_update.rb +88 -37
- data/lib/flat_api/models/score_views_counts.rb +62 -35
- data/lib/flat_api/models/task.rb +364 -0
- data/lib/flat_api/models/task_export_options.rb +218 -0
- data/lib/flat_api/models/task_progress.rb +226 -0
- data/lib/flat_api/models/task_result.rb +226 -0
- data/lib/flat_api/models/tutteo_product.rb +42 -0
- data/lib/flat_api/models/user_admin_update.rb +219 -41
- data/lib/flat_api/models/user_azure_details.rb +235 -0
- data/lib/flat_api/models/user_basics.rb +187 -55
- data/lib/flat_api/models/user_community_profile_links.rb +272 -0
- data/lib/flat_api/models/user_creation.rb +215 -49
- data/lib/flat_api/models/user_details.rb +258 -93
- data/lib/flat_api/models/user_details_admin.rb +220 -68
- data/lib/flat_api/models/user_details_admin_all_of_license.rb +278 -0
- data/lib/flat_api/models/user_public.rb +242 -79
- data/lib/flat_api/models/user_public_summary.rb +201 -61
- data/lib/flat_api/models/user_signin_link.rb +225 -0
- data/lib/flat_api/models/user_signin_link_creation.rb +217 -0
- data/lib/flat_api/version.rb +5 -5
- data/lib/flat_api.rb +87 -15
- data/spec/api/account_api_spec.rb +11 -10
- data/spec/api/class_api_spec.rb +212 -68
- data/spec/api/collection_api_spec.rb +158 -0
- data/spec/api/edu_resources_api_spec.rb +181 -0
- data/spec/api/group_api_spec.rb +14 -15
- data/spec/api/organization_api_spec.rb +78 -39
- data/spec/api/score_api_spec.rb +139 -110
- data/spec/api/task_api_spec.rb +47 -0
- data/spec/api/user_api_spec.rb +28 -26
- data/spec/models/api_access_token_spec.rb +66 -0
- data/spec/models/app_scopes_spec.rb +30 -0
- data/spec/models/assignment_capabilities_can_publish_in_class_error_spec.rb +42 -0
- data/spec/models/assignment_capabilities_spec.rb +60 -0
- data/spec/models/assignment_copy_response_spec.rb +124 -0
- data/spec/models/assignment_copy_spec.rb +13 -23
- data/spec/models/assignment_copy_to_class_spec.rb +48 -0
- data/spec/models/assignment_copy_to_resource_library_spec.rb +42 -0
- data/spec/models/assignment_spec.rb +51 -39
- data/spec/models/assignment_submission_comment_creation_spec.rb +36 -0
- data/spec/models/assignment_submission_comment_spec.rb +72 -0
- data/spec/models/assignment_submission_comments_spec.rb +42 -0
- data/spec/models/assignment_submission_history_attachment_spec.rb +48 -0
- data/spec/models/assignment_submission_history_spec.rb +112 -0
- data/spec/models/assignment_submission_history_state_spec.rb +30 -0
- data/spec/models/assignment_submission_lti_spec.rb +36 -0
- data/spec/models/assignment_submission_playback_inner_spec.rb +42 -0
- data/spec/models/assignment_submission_spec.rb +68 -32
- data/spec/models/assignment_submission_state_spec.rb +30 -0
- data/spec/models/assignment_submission_update_spec.rb +29 -23
- data/spec/models/assignment_type_spec.rb +30 -0
- data/spec/models/assignment_update_spec.rb +100 -0
- data/spec/models/class_assignment_all_of_canvas_spec.rb +42 -0
- data/spec/models/class_assignment_all_of_lti_spec.rb +36 -0
- data/spec/models/class_assignment_all_of_mfc_spec.rb +42 -0
- data/spec/models/class_assignment_spec.rb +216 -0
- data/spec/models/class_assignment_update_all_of_google_classroom_spec.rb +36 -0
- data/spec/models/class_assignment_update_all_of_microsoft_graph_spec.rb +36 -0
- data/spec/models/class_assignment_update_spec.rb +150 -0
- data/spec/models/class_attachment_creation_spec.rb +41 -23
- data/spec/models/class_creation_spec.rb +34 -18
- data/spec/models/class_details_canvas_spec.rb +12 -18
- data/spec/models/class_details_clever_spec.rb +21 -27
- data/spec/models/class_details_google_classroom_spec.rb +12 -30
- data/spec/models/class_details_google_drive_spec.rb +12 -18
- data/spec/models/class_details_issues_spec.rb +36 -0
- data/spec/models/class_details_issues_sync_inner_spec.rb +52 -0
- data/spec/models/class_details_lti_spec.rb +13 -19
- data/spec/models/class_details_mfc_spec.rb +42 -0
- data/spec/models/class_details_microsoft_graph_spec.rb +36 -0
- data/spec/models/class_details_spec.rb +68 -34
- data/spec/models/class_grade_level_spec.rb +30 -0
- data/spec/models/class_roles_spec.rb +10 -16
- data/spec/models/class_state_spec.rb +10 -16
- data/spec/models/class_update_spec.rb +34 -18
- data/spec/models/collection_app_spec.rb +48 -0
- data/spec/models/collection_capabilities_spec.rb +60 -0
- data/spec/models/collection_creation_spec.rb +42 -0
- data/spec/models/collection_modification_spec.rb +42 -0
- data/spec/models/collection_privacy_spec.rb +30 -0
- data/spec/models/collection_spec.rb +114 -0
- data/spec/models/collection_type_spec.rb +30 -0
- data/spec/models/edu_library_spec.rb +62 -0
- data/spec/models/edu_resource_capabilities_spec.rb +48 -0
- data/spec/models/edu_resource_copy_spec.rb +36 -0
- data/spec/models/edu_resource_creation_spec.rb +48 -0
- data/spec/models/edu_resource_folder_spec.rb +36 -0
- data/spec/models/edu_resource_lti_link_spec.rb +36 -0
- data/spec/models/edu_resource_move_spec.rb +36 -0
- data/spec/models/edu_resource_privacy_spec.rb +30 -0
- data/spec/models/edu_resource_resource_spec.rb +32 -0
- data/spec/models/edu_resource_spec.rb +96 -0
- data/spec/models/edu_resource_type_spec.rb +30 -0
- data/spec/models/edu_resource_update_spec.rb +42 -0
- data/spec/models/edu_resource_use_in_class_spec.rb +42 -0
- data/spec/models/flat_error_response_spec.rb +14 -20
- data/spec/models/flat_locales_spec.rb +10 -16
- data/spec/models/google_classroom_coursework_spec.rb +19 -19
- data/spec/models/google_classroom_submission_spec.rb +13 -19
- data/spec/models/group_details_spec.rb +17 -23
- data/spec/models/group_spec.rb +21 -27
- data/spec/models/group_type_spec.rb +10 -16
- data/spec/models/license_mode_spec.rb +10 -16
- data/spec/models/license_sources_spec.rb +10 -16
- data/spec/models/lms_name_spec.rb +10 -16
- data/spec/models/lti_credentials_creation_spec.rb +12 -18
- data/spec/models/lti_credentials_spec.rb +19 -25
- data/spec/models/media_attachment_spec.rb +67 -37
- data/spec/models/media_score_sharing_mode_spec.rb +10 -16
- data/spec/models/microsoft_graph_assignment_spec.rb +54 -0
- data/spec/models/microsoft_graph_submission_spec.rb +42 -0
- data/spec/models/organization_invitation_creation_spec.rb +16 -18
- data/spec/models/organization_invitation_spec.rb +29 -23
- data/spec/models/organization_roles_spec.rb +10 -16
- data/spec/models/organization_user_access_token_creation_spec.rb +36 -0
- data/spec/models/resource_collaborator_creation_spec.rb +72 -0
- data/spec/models/resource_collaborator_spec.rb +112 -0
- data/spec/models/resource_rights_spec.rb +64 -0
- data/spec/models/score_comment_context_spec.rb +23 -23
- data/spec/models/score_comment_creation_spec.rb +16 -22
- data/spec/models/score_comment_moderation_spec.rb +46 -0
- data/spec/models/score_comment_spec.rb +35 -35
- data/spec/models/score_comment_update_spec.rb +14 -20
- data/spec/models/score_comments_counts_spec.rb +14 -20
- data/spec/models/score_creation_builder_data_all_of_builder_data_layout_data_spec.rb +82 -0
- data/spec/models/score_creation_builder_data_all_of_builder_data_score_data_instruments_spec.rb +60 -0
- data/spec/models/score_creation_builder_data_all_of_builder_data_score_data_spec.rb +66 -0
- data/spec/models/score_creation_builder_data_all_of_builder_data_spec.rb +42 -0
- data/spec/models/score_creation_builder_data_spec.rb +60 -0
- data/spec/models/score_creation_common_spec.rb +54 -0
- data/spec/models/score_creation_file_import_spec.rb +76 -0
- data/spec/models/score_creation_google_drive_import_spec.rb +60 -0
- data/spec/models/score_creation_spec.rb +12 -52
- data/spec/models/score_creation_type_spec.rb +10 -16
- data/spec/models/score_details_spec.rb +75 -45
- data/spec/models/score_fork_spec.rb +27 -15
- data/spec/models/score_license_spec.rb +10 -16
- data/spec/models/score_likes_counts_spec.rb +13 -19
- data/spec/models/score_modification_spec.rb +51 -21
- data/spec/models/score_plays_counts_spec.rb +48 -0
- data/spec/models/score_privacy_spec.rb +10 -16
- data/spec/models/score_revision_creation_spec.rb +18 -20
- data/spec/models/score_revision_spec.rb +23 -23
- data/spec/models/score_revision_statistics_spec.rb +24 -18
- data/spec/models/score_source_spec.rb +11 -17
- data/spec/models/score_summary_spec.rb +16 -22
- data/spec/models/score_track_creation_spec.rb +21 -21
- data/spec/models/score_track_point_spec.rb +17 -23
- data/spec/models/score_track_purpose_spec.rb +30 -0
- data/spec/models/score_track_spec.rb +28 -28
- data/spec/models/score_track_state_spec.rb +10 -16
- data/spec/models/score_track_type_spec.rb +10 -16
- data/spec/models/score_track_update_spec.rb +14 -20
- data/spec/models/score_views_counts_spec.rb +13 -19
- data/spec/models/task_export_options_spec.rb +36 -0
- data/spec/models/task_progress_spec.rb +42 -0
- data/spec/models/task_result_spec.rb +42 -0
- data/spec/models/task_spec.rb +100 -0
- data/spec/models/tutteo_product_spec.rb +30 -0
- data/spec/models/user_admin_update_spec.rb +36 -18
- data/spec/models/user_azure_details_spec.rb +48 -0
- data/spec/models/user_basics_spec.rb +47 -25
- data/spec/models/user_community_profile_links_spec.rb +66 -0
- data/spec/models/user_creation_spec.rb +36 -20
- data/spec/models/user_details_admin_all_of_license_spec.rb +60 -0
- data/spec/models/user_details_admin_spec.rb +60 -32
- data/spec/models/user_details_spec.rb +93 -45
- data/spec/models/user_public_spec.rb +71 -37
- data/spec/models/user_public_summary_spec.rb +51 -29
- data/spec/models/user_signin_link_creation_spec.rb +36 -0
- data/spec/models/user_signin_link_spec.rb +42 -0
- data/spec/spec_helper.rb +4 -4
- metadata +299 -312
- data/CHANGELOG.md +0 -13
- data/Gemfile +0 -7
- data/README.md +0 -249
- data/Rakefile +0 -8
- data/docs/AccountApi.md +0 -55
- data/docs/Assignment.md +0 -18
- data/docs/AssignmentCopy.md +0 -8
- data/docs/AssignmentCreation.md +0 -12
- data/docs/AssignmentSubmission.md +0 -19
- data/docs/AssignmentSubmissionUpdate.md +0 -11
- data/docs/ClassApi.md +0 -1051
- data/docs/ClassAttachmentCreation.md +0 -10
- data/docs/ClassCreation.md +0 -9
- data/docs/ClassDetails.md +0 -25
- data/docs/ClassDetailsCanvas.md +0 -9
- data/docs/ClassDetailsClever.md +0 -14
- data/docs/ClassDetailsGoogleClassroom.md +0 -11
- data/docs/ClassDetailsGoogleDrive.md +0 -9
- data/docs/ClassDetailsLti.md +0 -10
- data/docs/ClassRoles.md +0 -7
- data/docs/ClassState.md +0 -7
- data/docs/ClassUpdate.md +0 -9
- data/docs/FlatErrorResponse.md +0 -11
- data/docs/FlatLocales.md +0 -7
- data/docs/GoogleClassroomCoursework.md +0 -10
- data/docs/GoogleClassroomSubmission.md +0 -10
- data/docs/Group.md +0 -14
- data/docs/GroupApi.md +0 -167
- data/docs/GroupDetails.md +0 -14
- data/docs/GroupType.md +0 -7
- data/docs/LicenseMode.md +0 -7
- data/docs/LicenseSources.md +0 -7
- data/docs/LmsName.md +0 -7
- data/docs/LtiCredentials.md +0 -16
- data/docs/LtiCredentialsCreation.md +0 -9
- data/docs/MediaAttachment.md +0 -23
- data/docs/MediaScoreSharingMode.md +0 -7
- data/docs/OrganizationApi.md +0 -538
- data/docs/OrganizationInvitation.md +0 -14
- data/docs/OrganizationInvitationCreation.md +0 -9
- data/docs/OrganizationRoles.md +0 -7
- data/docs/ScoreApi.md +0 -1605
- data/docs/ScoreCollaborator.md +0 -15
- data/docs/ScoreCollaboratorCreation.md +0 -13
- data/docs/ScoreComment.md +0 -22
- data/docs/ScoreCommentContext.md +0 -14
- data/docs/ScoreCommentCreation.md +0 -13
- data/docs/ScoreCommentUpdate.md +0 -11
- data/docs/ScoreCommentsCounts.md +0 -11
- data/docs/ScoreCreation.md +0 -13
- data/docs/ScoreCreationType.md +0 -7
- data/docs/ScoreData.md +0 -7
- data/docs/ScoreDataEncoding.md +0 -7
- data/docs/ScoreDetails.md +0 -36
- data/docs/ScoreFork.md +0 -7
- data/docs/ScoreLicense.md +0 -7
- data/docs/ScoreLikesCounts.md +0 -10
- data/docs/ScoreModification.md +0 -13
- data/docs/ScorePrivacy.md +0 -7
- data/docs/ScoreRevision.md +0 -14
- data/docs/ScoreRevisionCreation.md +0 -11
- data/docs/ScoreRevisionStatistics.md +0 -9
- data/docs/ScoreRights.md +0 -10
- data/docs/ScoreSource.md +0 -8
- data/docs/ScoreSummary.md +0 -13
- data/docs/ScoreTrack.md +0 -19
- data/docs/ScoreTrackCreation.md +0 -12
- data/docs/ScoreTrackPoint.md +0 -10
- data/docs/ScoreTrackState.md +0 -7
- data/docs/ScoreTrackType.md +0 -7
- data/docs/ScoreTrackUpdate.md +0 -11
- data/docs/ScoreViewsCounts.md +0 -10
- data/docs/UserAdminUpdate.md +0 -9
- data/docs/UserApi.md +0 -173
- data/docs/UserBasics.md +0 -13
- data/docs/UserCreation.md +0 -11
- data/docs/UserDetails.md +0 -28
- data/docs/UserDetailsAdmin.md +0 -20
- data/docs/UserDetailsAdminLicense.md +0 -12
- data/docs/UserInstruments.md +0 -7
- data/docs/UserPublic.md +0 -25
- data/docs/UserPublicSummary.md +0 -17
- data/flat_api.gemspec +0 -48
- data/git_push.sh +0 -55
- data/lib/flat_api/models/assignment_creation.rb +0 -230
- data/lib/flat_api/models/score_collaborator.rb +0 -263
- data/lib/flat_api/models/score_data.rb +0 -179
- data/lib/flat_api/models/score_data_encoding.rb +0 -30
- data/lib/flat_api/models/score_rights.rb +0 -215
- data/lib/flat_api/models/user_details_admin_license.rb +0 -227
- data/lib/flat_api/models/user_instruments.rb +0 -179
- data/spec/api_client_spec.rb +0 -226
- data/spec/configuration_spec.rb +0 -42
- data/spec/models/assignment_creation_spec.rb +0 -66
- data/spec/models/score_collaborator_creation_spec.rb +0 -72
- data/spec/models/score_collaborator_spec.rb +0 -84
- data/spec/models/score_data_encoding_spec.rb +0 -36
- data/spec/models/score_data_spec.rb +0 -36
- data/spec/models/score_rights_spec.rb +0 -48
- data/spec/models/user_details_admin_license_spec.rb +0 -66
- data/spec/models/user_instruments_spec.rb +0 -36
data/lib/flat_api/api_client.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
=begin
|
2
2
|
#Flat API
|
3
3
|
|
4
|
-
#The Flat API allows you to easily extend the abilities of the [Flat Platform](https://flat.io), with a wide range of use cases including the following: * Creating and importing new music scores using MusicXML
|
4
|
+
#The Flat API allows you to easily extend the abilities of the [Flat Platform](https://flat.io), with a wide range of use cases including the following: * Creating and importing new music scores using MusicXML, MIDI, Guitar Pro (GP3, GP4, GP5, GPX, GP), PowerTab, TuxGuitar and MuseScore files * 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](/swagger.yaml) of this API follows the [OpenAPI Initiative (OAI) specification](https://www.openapis.org/), you can use and work with [compatible Swagger tools](http://swagger.io/open-source-integrations/). This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). You can use your favorite HTTP/REST library for your programming language to use Flat's API. This specification and reference is [available on Github](https://github.com/FlatIO/api-reference). Getting Started and learn more: * [API Overview and introduction](https://flat.io/developers/docs/api/) * [Authentication (Personal Access Tokens or OAuth2)](https://flat.io/developers/docs/api/authentication.html) * [SDKs](https://flat.io/developers/docs/api/sdks.html) * [Rate Limits](https://flat.io/developers/docs/api/rate-limits.html) * [Changelog](https://flat.io/developers/docs/api/changelog.html)
|
5
5
|
|
6
|
-
OpenAPI
|
6
|
+
The version of the OpenAPI document: 2.20.0
|
7
7
|
Contact: developers@flat.io
|
8
|
-
Generated by: https://
|
9
|
-
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
OpenAPI Generator version: 7.3.0
|
10
10
|
|
11
11
|
=end
|
12
12
|
|
@@ -14,8 +14,9 @@ require 'date'
|
|
14
14
|
require 'json'
|
15
15
|
require 'logger'
|
16
16
|
require 'tempfile'
|
17
|
+
require 'time'
|
17
18
|
require 'typhoeus'
|
18
|
-
|
19
|
+
|
19
20
|
|
20
21
|
module FlatApi
|
21
22
|
class ApiClient
|
@@ -31,9 +32,9 @@ module FlatApi
|
|
31
32
|
# @option config [Configuration] Configuration for initializing the object, default to Configuration.default
|
32
33
|
def initialize(config = Configuration.default)
|
33
34
|
@config = config
|
34
|
-
@user_agent = "
|
35
|
+
@user_agent = "OpenAPI-Generator/#{VERSION}/ruby"
|
35
36
|
@default_headers = {
|
36
|
-
'Content-Type' =>
|
37
|
+
'Content-Type' => 'application/json',
|
37
38
|
'User-Agent' => @user_agent
|
38
39
|
}
|
39
40
|
end
|
@@ -44,10 +45,11 @@ module FlatApi
|
|
44
45
|
|
45
46
|
# Call an API with given options.
|
46
47
|
#
|
47
|
-
# @return [Array<(Object,
|
48
|
-
# the data deserialized from response body (
|
48
|
+
# @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
|
49
|
+
# the data deserialized from response body (may be a Tempfile or nil), response status code and response headers.
|
49
50
|
def call_api(http_method, path, opts = {})
|
50
51
|
request = build_request(http_method, path, opts)
|
52
|
+
tempfile = download_file(request) if opts[:return_type] == 'File'
|
51
53
|
response = request.run
|
52
54
|
|
53
55
|
if @config.debugging
|
@@ -69,7 +71,9 @@ module FlatApi
|
|
69
71
|
end
|
70
72
|
end
|
71
73
|
|
72
|
-
if opts[:return_type]
|
74
|
+
if opts[:return_type] == 'File'
|
75
|
+
data = tempfile
|
76
|
+
elsif opts[:return_type]
|
73
77
|
data = deserialize(response, opts[:return_type])
|
74
78
|
else
|
75
79
|
data = nil
|
@@ -87,12 +91,13 @@ module FlatApi
|
|
87
91
|
# @option opts [Object] :body HTTP body (JSON/XML)
|
88
92
|
# @return [Typhoeus::Request] A Typhoeus Request
|
89
93
|
def build_request(http_method, path, opts = {})
|
90
|
-
url = build_request_url(path)
|
94
|
+
url = build_request_url(path, opts)
|
91
95
|
http_method = http_method.to_sym.downcase
|
92
96
|
|
93
97
|
header_params = @default_headers.merge(opts[:header_params] || {})
|
94
98
|
query_params = opts[:query_params] || {}
|
95
99
|
form_params = opts[:form_params] || {}
|
100
|
+
follow_location = opts[:follow_location] || true
|
96
101
|
|
97
102
|
update_params_for_auth! header_params, query_params, opts[:auth_names]
|
98
103
|
|
@@ -109,7 +114,8 @@ module FlatApi
|
|
109
114
|
:ssl_verifyhost => _verify_ssl_host,
|
110
115
|
:sslcert => @config.cert_file,
|
111
116
|
:sslkey => @config.key_file,
|
112
|
-
:verbose => @config.debugging
|
117
|
+
:verbose => @config.debugging,
|
118
|
+
:followlocation => follow_location
|
113
119
|
}
|
114
120
|
|
115
121
|
# set custom cert, if provided
|
@@ -123,9 +129,78 @@ module FlatApi
|
|
123
129
|
end
|
124
130
|
end
|
125
131
|
|
126
|
-
|
127
|
-
|
128
|
-
|
132
|
+
Typhoeus::Request.new(url, req_opts)
|
133
|
+
end
|
134
|
+
|
135
|
+
# Builds the HTTP request body
|
136
|
+
#
|
137
|
+
# @param [Hash] header_params Header parameters
|
138
|
+
# @param [Hash] form_params Query parameters
|
139
|
+
# @param [Object] body HTTP body (JSON/XML)
|
140
|
+
# @return [String] HTTP body data in the form of string
|
141
|
+
def build_request_body(header_params, form_params, body)
|
142
|
+
# http form
|
143
|
+
if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
|
144
|
+
header_params['Content-Type'] == 'multipart/form-data'
|
145
|
+
data = {}
|
146
|
+
form_params.each do |key, value|
|
147
|
+
case value
|
148
|
+
when ::File, ::Array, nil
|
149
|
+
# let typhoeus handle File, Array and nil parameters
|
150
|
+
data[key] = value
|
151
|
+
else
|
152
|
+
data[key] = value.to_s
|
153
|
+
end
|
154
|
+
end
|
155
|
+
elsif body
|
156
|
+
data = body.is_a?(String) ? body : body.to_json
|
157
|
+
else
|
158
|
+
data = nil
|
159
|
+
end
|
160
|
+
data
|
161
|
+
end
|
162
|
+
|
163
|
+
# Save response body into a file in (the defined) temporary folder, using the filename
|
164
|
+
# from the "Content-Disposition" header if provided, otherwise a random filename.
|
165
|
+
# The response body is written to the file in chunks in order to handle files which
|
166
|
+
# size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
|
167
|
+
# process can use.
|
168
|
+
#
|
169
|
+
# @see Configuration#temp_folder_path
|
170
|
+
#
|
171
|
+
# @return [Tempfile] the tempfile generated
|
172
|
+
def download_file(request)
|
173
|
+
tempfile = nil
|
174
|
+
encoding = nil
|
175
|
+
request.on_headers do |response|
|
176
|
+
content_disposition = response.headers['Content-Disposition']
|
177
|
+
if content_disposition && content_disposition =~ /filename=/i
|
178
|
+
filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
|
179
|
+
prefix = sanitize_filename(filename)
|
180
|
+
else
|
181
|
+
prefix = 'download-'
|
182
|
+
end
|
183
|
+
prefix = prefix + '-' unless prefix.end_with?('-')
|
184
|
+
encoding = response.body.encoding
|
185
|
+
tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
|
186
|
+
end
|
187
|
+
request.on_body do |chunk|
|
188
|
+
chunk.force_encoding(encoding)
|
189
|
+
tempfile.write(chunk)
|
190
|
+
end
|
191
|
+
# run the request to ensure the tempfile is created successfully before returning it
|
192
|
+
request.run
|
193
|
+
if tempfile
|
194
|
+
tempfile.close
|
195
|
+
@config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
|
196
|
+
"with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
|
197
|
+
"will be deleted automatically with GC. It's also recommended to delete the temp file "\
|
198
|
+
"explicitly with `tempfile.delete`"
|
199
|
+
else
|
200
|
+
fail ApiError.new("Failed to create the tempfile based on the HTTP response from the server: #{request.inspect}")
|
201
|
+
end
|
202
|
+
|
203
|
+
tempfile
|
129
204
|
end
|
130
205
|
|
131
206
|
# Check if the given MIME is a JSON MIME.
|
@@ -137,24 +212,19 @@ module FlatApi
|
|
137
212
|
# @param [String] mime MIME
|
138
213
|
# @return [Boolean] True if the MIME is application/json
|
139
214
|
def json_mime?(mime)
|
140
|
-
|
215
|
+
(mime == '*/*') || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
|
141
216
|
end
|
142
217
|
|
143
218
|
# Deserialize the response to the given return type.
|
144
219
|
#
|
145
220
|
# @param [Response] response HTTP response
|
146
|
-
# @param [String] return_type some examples: "User", "Array
|
221
|
+
# @param [String] return_type some examples: "User", "Array<User>", "Hash<String, Integer>"
|
147
222
|
def deserialize(response, return_type)
|
148
223
|
body = response.body
|
149
|
-
|
150
|
-
# handle file downloading - return the File instance processed in request callbacks
|
151
|
-
# note that response body is empty when the file is written in chunks in request on_body callback
|
152
|
-
return @tempfile if return_type == 'File'
|
153
|
-
|
154
224
|
return nil if body.nil? || body.empty?
|
155
225
|
|
156
226
|
# return response body directly for String return type
|
157
|
-
return body if return_type == 'String'
|
227
|
+
return body.to_s if return_type == 'String'
|
158
228
|
|
159
229
|
# ensuring a default content type
|
160
230
|
content_type = response.headers['Content-Type'] || 'application/json'
|
@@ -164,7 +234,7 @@ module FlatApi
|
|
164
234
|
begin
|
165
235
|
data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
|
166
236
|
rescue JSON::ParserError => e
|
167
|
-
if %w(String Date
|
237
|
+
if %w(String Date Time).include?(return_type)
|
168
238
|
data = body
|
169
239
|
else
|
170
240
|
raise e
|
@@ -187,11 +257,11 @@ module FlatApi
|
|
187
257
|
data.to_i
|
188
258
|
when 'Float'
|
189
259
|
data.to_f
|
190
|
-
when '
|
260
|
+
when 'Boolean'
|
191
261
|
data == true
|
192
|
-
when '
|
262
|
+
when 'Time'
|
193
263
|
# parse date time (expecting ISO 8601 format)
|
194
|
-
|
264
|
+
Time.parse data
|
195
265
|
when 'Date'
|
196
266
|
# parse date time (expecting ISO 8601 format)
|
197
267
|
Date.parse data
|
@@ -201,54 +271,17 @@ module FlatApi
|
|
201
271
|
when /\AArray<(.+)>\z/
|
202
272
|
# e.g. Array<Pet>
|
203
273
|
sub_type = $1
|
204
|
-
data.map {|item| convert_to_type(item, sub_type) }
|
274
|
+
data.map { |item| convert_to_type(item, sub_type) }
|
205
275
|
when /\AHash\<String, (.+)\>\z/
|
206
276
|
# e.g. Hash<String, Integer>
|
207
277
|
sub_type = $1
|
208
278
|
{}.tap do |hash|
|
209
|
-
data.each {|k, v| hash[k] = convert_to_type(v, sub_type) }
|
279
|
+
data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
|
210
280
|
end
|
211
281
|
else
|
212
|
-
# models
|
213
|
-
FlatApi.const_get(return_type)
|
214
|
-
|
215
|
-
end
|
216
|
-
end
|
217
|
-
end
|
218
|
-
|
219
|
-
# Save response body into a file in (the defined) temporary folder, using the filename
|
220
|
-
# from the "Content-Disposition" header if provided, otherwise a random filename.
|
221
|
-
# The response body is written to the file in chunks in order to handle files which
|
222
|
-
# size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
|
223
|
-
# process can use.
|
224
|
-
#
|
225
|
-
# @see Configuration#temp_folder_path
|
226
|
-
def download_file(request)
|
227
|
-
tempfile = nil
|
228
|
-
encoding = nil
|
229
|
-
request.on_headers do |response|
|
230
|
-
content_disposition = response.headers['Content-Disposition']
|
231
|
-
if content_disposition and content_disposition =~ /filename=/i
|
232
|
-
filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
|
233
|
-
prefix = sanitize_filename(filename)
|
234
|
-
else
|
235
|
-
prefix = 'download-'
|
236
|
-
end
|
237
|
-
prefix = prefix + '-' unless prefix.end_with?('-')
|
238
|
-
encoding = response.body.encoding
|
239
|
-
tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
|
240
|
-
@tempfile = tempfile
|
241
|
-
end
|
242
|
-
request.on_body do |chunk|
|
243
|
-
chunk.force_encoding(encoding)
|
244
|
-
tempfile.write(chunk)
|
245
|
-
end
|
246
|
-
request.on_complete do |response|
|
247
|
-
tempfile.close
|
248
|
-
@config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
|
249
|
-
"with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
|
250
|
-
"will be deleted automatically with GC. It's also recommended to delete the temp file "\
|
251
|
-
"explicitly with `tempfile.delete`"
|
282
|
+
# models (e.g. Pet) or oneOf
|
283
|
+
klass = FlatApi.const_get(return_type)
|
284
|
+
klass.respond_to?(:openapi_one_of) ? klass.build(data) : klass.build_from_hash(data)
|
252
285
|
end
|
253
286
|
end
|
254
287
|
|
@@ -261,41 +294,13 @@ module FlatApi
|
|
261
294
|
filename.gsub(/.*[\/\\]/, '')
|
262
295
|
end
|
263
296
|
|
264
|
-
def build_request_url(path)
|
297
|
+
def build_request_url(path, opts = {})
|
265
298
|
# Add leading and trailing slashes to path
|
266
299
|
path = "/#{path}".gsub(/\/+/, '/')
|
267
|
-
|
268
|
-
end
|
269
|
-
|
270
|
-
# Builds the HTTP request body
|
271
|
-
#
|
272
|
-
# @param [Hash] header_params Header parameters
|
273
|
-
# @param [Hash] form_params Query parameters
|
274
|
-
# @param [Object] body HTTP body (JSON/XML)
|
275
|
-
# @return [String] HTTP body data in the form of string
|
276
|
-
def build_request_body(header_params, form_params, body)
|
277
|
-
# http form
|
278
|
-
if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
|
279
|
-
header_params['Content-Type'] == 'multipart/form-data'
|
280
|
-
data = {}
|
281
|
-
form_params.each do |key, value|
|
282
|
-
case value
|
283
|
-
when ::File, ::Array, nil
|
284
|
-
# let typhoeus handle File, Array and nil parameters
|
285
|
-
data[key] = value
|
286
|
-
else
|
287
|
-
data[key] = value.to_s
|
288
|
-
end
|
289
|
-
end
|
290
|
-
elsif body
|
291
|
-
data = body.is_a?(String) ? body : body.to_json
|
292
|
-
else
|
293
|
-
data = nil
|
294
|
-
end
|
295
|
-
data
|
300
|
+
@config.base_url(opts[:operation]) + path
|
296
301
|
end
|
297
302
|
|
298
|
-
# Update
|
303
|
+
# Update header and query params based on authentication settings.
|
299
304
|
#
|
300
305
|
# @param [Hash] header_params Header parameters
|
301
306
|
# @param [Hash] query_params Query parameters
|
@@ -307,14 +312,14 @@ module FlatApi
|
|
307
312
|
case auth_setting[:in]
|
308
313
|
when 'header' then header_params[auth_setting[:key]] = auth_setting[:value]
|
309
314
|
when 'query' then query_params[auth_setting[:key]] = auth_setting[:value]
|
310
|
-
else fail ArgumentError, 'Authentication token must be in `query`
|
315
|
+
else fail ArgumentError, 'Authentication token must be in `query` or `header`'
|
311
316
|
end
|
312
317
|
end
|
313
318
|
end
|
314
319
|
|
315
320
|
# Sets user agent in HTTP header
|
316
321
|
#
|
317
|
-
# @param [String] user_agent User agent (e.g.
|
322
|
+
# @param [String] user_agent User agent (e.g. openapi-generator/ruby/1.0.0)
|
318
323
|
def user_agent=(user_agent)
|
319
324
|
@user_agent = user_agent
|
320
325
|
@default_headers['User-Agent'] = @user_agent
|
@@ -327,18 +332,18 @@ module FlatApi
|
|
327
332
|
return nil if accepts.nil? || accepts.empty?
|
328
333
|
# use JSON when present, otherwise use all of the provided
|
329
334
|
json_accept = accepts.find { |s| json_mime?(s) }
|
330
|
-
|
335
|
+
json_accept || accepts.join(',')
|
331
336
|
end
|
332
337
|
|
333
338
|
# Return Content-Type header based on an array of content types provided.
|
334
339
|
# @param [Array] content_types array for Content-Type
|
335
340
|
# @return [String] the Content-Type header (e.g. application/json)
|
336
341
|
def select_header_content_type(content_types)
|
337
|
-
#
|
338
|
-
return
|
342
|
+
# return nil by default
|
343
|
+
return if content_types.nil? || content_types.empty?
|
339
344
|
# use JSON when present, otherwise use the first one
|
340
345
|
json_content_type = content_types.find { |s| json_mime?(s) }
|
341
|
-
|
346
|
+
json_content_type || content_types.first
|
342
347
|
end
|
343
348
|
|
344
349
|
# Convert object (array, hash, object, etc) to JSON string.
|
@@ -348,7 +353,7 @@ module FlatApi
|
|
348
353
|
return model if model.nil? || model.is_a?(String)
|
349
354
|
local_body = nil
|
350
355
|
if model.is_a?(Array)
|
351
|
-
local_body = model.map{|m| object_to_hash(m) }
|
356
|
+
local_body = model.map { |m| object_to_hash(m) }
|
352
357
|
else
|
353
358
|
local_body = object_to_hash(model)
|
354
359
|
end
|
data/lib/flat_api/api_error.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
=begin
|
2
2
|
#Flat API
|
3
3
|
|
4
|
-
#The Flat API allows you to easily extend the abilities of the [Flat Platform](https://flat.io), with a wide range of use cases including the following: * Creating and importing new music scores using MusicXML
|
4
|
+
#The Flat API allows you to easily extend the abilities of the [Flat Platform](https://flat.io), with a wide range of use cases including the following: * Creating and importing new music scores using MusicXML, MIDI, Guitar Pro (GP3, GP4, GP5, GPX, GP), PowerTab, TuxGuitar and MuseScore files * 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](/swagger.yaml) of this API follows the [OpenAPI Initiative (OAI) specification](https://www.openapis.org/), you can use and work with [compatible Swagger tools](http://swagger.io/open-source-integrations/). This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). You can use your favorite HTTP/REST library for your programming language to use Flat's API. This specification and reference is [available on Github](https://github.com/FlatIO/api-reference). Getting Started and learn more: * [API Overview and introduction](https://flat.io/developers/docs/api/) * [Authentication (Personal Access Tokens or OAuth2)](https://flat.io/developers/docs/api/authentication.html) * [SDKs](https://flat.io/developers/docs/api/sdks.html) * [Rate Limits](https://flat.io/developers/docs/api/rate-limits.html) * [Changelog](https://flat.io/developers/docs/api/changelog.html)
|
5
5
|
|
6
|
-
OpenAPI
|
6
|
+
The version of the OpenAPI document: 2.20.0
|
7
7
|
Contact: developers@flat.io
|
8
|
-
Generated by: https://
|
9
|
-
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
OpenAPI Generator version: 7.3.0
|
10
10
|
|
11
11
|
=end
|
12
12
|
|
@@ -32,7 +32,27 @@ module FlatApi
|
|
32
32
|
end
|
33
33
|
else
|
34
34
|
super arg
|
35
|
+
@message = arg
|
35
36
|
end
|
36
37
|
end
|
38
|
+
|
39
|
+
# Override to_s to display a friendly error message
|
40
|
+
def to_s
|
41
|
+
message
|
42
|
+
end
|
43
|
+
|
44
|
+
def message
|
45
|
+
if @message.nil?
|
46
|
+
msg = "Error message: the server returns an error"
|
47
|
+
else
|
48
|
+
msg = @message
|
49
|
+
end
|
50
|
+
|
51
|
+
msg += "\nHTTP status code: #{code}" if code
|
52
|
+
msg += "\nResponse headers: #{response_headers}" if response_headers
|
53
|
+
msg += "\nResponse body: #{response_body}" if response_body
|
54
|
+
|
55
|
+
msg
|
56
|
+
end
|
37
57
|
end
|
38
58
|
end
|
@@ -1,17 +1,15 @@
|
|
1
1
|
=begin
|
2
2
|
#Flat API
|
3
3
|
|
4
|
-
#The Flat API allows you to easily extend the abilities of the [Flat Platform](https://flat.io), with a wide range of use cases including the following: * Creating and importing new music scores using MusicXML
|
4
|
+
#The Flat API allows you to easily extend the abilities of the [Flat Platform](https://flat.io), with a wide range of use cases including the following: * Creating and importing new music scores using MusicXML, MIDI, Guitar Pro (GP3, GP4, GP5, GPX, GP), PowerTab, TuxGuitar and MuseScore files * 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](/swagger.yaml) of this API follows the [OpenAPI Initiative (OAI) specification](https://www.openapis.org/), you can use and work with [compatible Swagger tools](http://swagger.io/open-source-integrations/). This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). You can use your favorite HTTP/REST library for your programming language to use Flat's API. This specification and reference is [available on Github](https://github.com/FlatIO/api-reference). Getting Started and learn more: * [API Overview and introduction](https://flat.io/developers/docs/api/) * [Authentication (Personal Access Tokens or OAuth2)](https://flat.io/developers/docs/api/authentication.html) * [SDKs](https://flat.io/developers/docs/api/sdks.html) * [Rate Limits](https://flat.io/developers/docs/api/rate-limits.html) * [Changelog](https://flat.io/developers/docs/api/changelog.html)
|
5
5
|
|
6
|
-
OpenAPI
|
6
|
+
The version of the OpenAPI document: 2.20.0
|
7
7
|
Contact: developers@flat.io
|
8
|
-
Generated by: https://
|
9
|
-
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
OpenAPI Generator version: 7.3.0
|
10
10
|
|
11
11
|
=end
|
12
12
|
|
13
|
-
require 'uri'
|
14
|
-
|
15
13
|
module FlatApi
|
16
14
|
class Configuration
|
17
15
|
# Defines url scheme
|
@@ -23,6 +21,18 @@ module FlatApi
|
|
23
21
|
# Defines url base path
|
24
22
|
attr_accessor :base_path
|
25
23
|
|
24
|
+
# Define server configuration index
|
25
|
+
attr_accessor :server_index
|
26
|
+
|
27
|
+
# Define server operation configuration index
|
28
|
+
attr_accessor :server_operation_index
|
29
|
+
|
30
|
+
# Default server variables
|
31
|
+
attr_accessor :server_variables
|
32
|
+
|
33
|
+
# Default server operation variables
|
34
|
+
attr_accessor :server_operation_variables
|
35
|
+
|
26
36
|
# Defines API keys used with API Key authentications.
|
27
37
|
#
|
28
38
|
# @return [Hash] key: parameter name, value: parameter value (API key)
|
@@ -52,6 +62,16 @@ module FlatApi
|
|
52
62
|
# Defines the access token (Bearer) used with OAuth2.
|
53
63
|
attr_accessor :access_token
|
54
64
|
|
65
|
+
# Defines a Proc used to fetch or refresh access tokens (Bearer) used with OAuth2.
|
66
|
+
# Overrides the access_token if set
|
67
|
+
# @return [Proc]
|
68
|
+
attr_accessor :access_token_getter
|
69
|
+
|
70
|
+
# Set this to return data as binary instead of downloading a temp file. When enabled (set to true)
|
71
|
+
# HTTP responses with return type `File` will be returned as a stream of binary data.
|
72
|
+
# Default to false.
|
73
|
+
attr_accessor :return_binary_data
|
74
|
+
|
55
75
|
# Set this to enable/disable debugging. When enabled (set to true), HTTP request/response
|
56
76
|
# details will be logged with `logger.debug` (see the `logger` attribute).
|
57
77
|
# Default to false.
|
@@ -123,6 +143,7 @@ module FlatApi
|
|
123
143
|
# https://github.com/typhoeus/ethon/blob/master/lib/ethon/easy/queryable.rb#L96
|
124
144
|
attr_accessor :params_encoding
|
125
145
|
|
146
|
+
|
126
147
|
attr_accessor :inject_format
|
127
148
|
|
128
149
|
attr_accessor :force_ending_format
|
@@ -131,15 +152,19 @@ module FlatApi
|
|
131
152
|
@scheme = 'https'
|
132
153
|
@host = 'api.flat.io'
|
133
154
|
@base_path = '/v2'
|
155
|
+
@server_index = nil
|
156
|
+
@server_operation_index = {}
|
157
|
+
@server_variables = {}
|
158
|
+
@server_operation_variables = {}
|
134
159
|
@api_key = {}
|
135
160
|
@api_key_prefix = {}
|
136
|
-
@timeout = 0
|
137
161
|
@client_side_validation = true
|
138
162
|
@verify_ssl = true
|
139
163
|
@verify_ssl_host = true
|
140
|
-
@params_encoding = nil
|
141
164
|
@cert_file = nil
|
142
165
|
@key_file = nil
|
166
|
+
@timeout = 0
|
167
|
+
@params_encoding = nil
|
143
168
|
@debugging = false
|
144
169
|
@inject_format = false
|
145
170
|
@force_ending_format = false
|
@@ -170,24 +195,37 @@ module FlatApi
|
|
170
195
|
def base_path=(base_path)
|
171
196
|
# Add leading and trailing slashes to base_path
|
172
197
|
@base_path = "/#{base_path}".gsub(/\/+/, '/')
|
173
|
-
@base_path =
|
198
|
+
@base_path = '' if @base_path == '/'
|
174
199
|
end
|
175
200
|
|
176
|
-
|
177
|
-
|
178
|
-
|
201
|
+
# Returns base URL for specified operation based on server settings
|
202
|
+
def base_url(operation = nil)
|
203
|
+
if operation_server_settings.key?(operation) then
|
204
|
+
index = server_operation_index.fetch(operation, server_index)
|
205
|
+
server_url(index.nil? ? 0 : index, server_operation_variables.fetch(operation, server_variables), operation_server_settings[operation])
|
206
|
+
else
|
207
|
+
server_index.nil? ? "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') : server_url(server_index, server_variables, nil)
|
208
|
+
end
|
179
209
|
end
|
180
210
|
|
181
211
|
# Gets API key (with prefix if set).
|
182
212
|
# @param [String] param_name the parameter name of API key auth
|
183
|
-
def api_key_with_prefix(param_name)
|
213
|
+
def api_key_with_prefix(param_name, param_alias = nil)
|
214
|
+
key = @api_key[param_name]
|
215
|
+
key = @api_key.fetch(param_alias, key) unless param_alias.nil?
|
184
216
|
if @api_key_prefix[param_name]
|
185
|
-
"#{@api_key_prefix[param_name]} #{
|
217
|
+
"#{@api_key_prefix[param_name]} #{key}"
|
186
218
|
else
|
187
|
-
|
219
|
+
key
|
188
220
|
end
|
189
221
|
end
|
190
222
|
|
223
|
+
# Gets access_token using access_token_getter or uses the static access_token
|
224
|
+
def access_token_with_refresh
|
225
|
+
return access_token if access_token_getter.nil?
|
226
|
+
access_token_getter.call
|
227
|
+
end
|
228
|
+
|
191
229
|
# Gets Basic Auth token string
|
192
230
|
def basic_auth_token
|
193
231
|
'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n")
|
@@ -201,9 +239,60 @@ module FlatApi
|
|
201
239
|
type: 'oauth2',
|
202
240
|
in: 'header',
|
203
241
|
key: 'Authorization',
|
204
|
-
value: "Bearer #{
|
242
|
+
value: "Bearer #{access_token_with_refresh}"
|
205
243
|
},
|
206
244
|
}
|
207
245
|
end
|
246
|
+
|
247
|
+
# Returns an array of Server setting
|
248
|
+
def server_settings
|
249
|
+
[
|
250
|
+
{
|
251
|
+
url: "https://api.flat.io/v2",
|
252
|
+
description: "No description provided",
|
253
|
+
}
|
254
|
+
]
|
255
|
+
end
|
256
|
+
|
257
|
+
def operation_server_settings
|
258
|
+
{
|
259
|
+
}
|
260
|
+
end
|
261
|
+
|
262
|
+
# Returns URL based on server settings
|
263
|
+
#
|
264
|
+
# @param index array index of the server settings
|
265
|
+
# @param variables hash of variable and the corresponding value
|
266
|
+
def server_url(index, variables = {}, servers = nil)
|
267
|
+
servers = server_settings if servers == nil
|
268
|
+
|
269
|
+
# check array index out of bound
|
270
|
+
if (index.nil? || index < 0 || index >= servers.size)
|
271
|
+
fail ArgumentError, "Invalid index #{index} when selecting the server. Must not be nil and must be less than #{servers.size}"
|
272
|
+
end
|
273
|
+
|
274
|
+
server = servers[index]
|
275
|
+
url = server[:url]
|
276
|
+
|
277
|
+
return url unless server.key? :variables
|
278
|
+
|
279
|
+
# go through variable and assign a value
|
280
|
+
server[:variables].each do |name, variable|
|
281
|
+
if variables.key?(name)
|
282
|
+
if (!server[:variables][name].key?(:enum_values) || server[:variables][name][:enum_values].include?(variables[name]))
|
283
|
+
url.gsub! "{" + name.to_s + "}", variables[name]
|
284
|
+
else
|
285
|
+
fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
|
286
|
+
end
|
287
|
+
else
|
288
|
+
# use default value
|
289
|
+
url.gsub! "{" + name.to_s + "}", server[:variables][name][:default_value]
|
290
|
+
end
|
291
|
+
end
|
292
|
+
|
293
|
+
url
|
294
|
+
end
|
295
|
+
|
296
|
+
|
208
297
|
end
|
209
298
|
end
|