flat_api 0.3.5 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +69 -0
- data/LICENSE +201 -0
- data/README.md +92 -0
- data/lib/flat_api/api/account_api.rb +4 -4
- data/lib/flat_api/api/class_api.rb +281 -63
- data/lib/flat_api/api/collection_api.rb +63 -50
- data/lib/flat_api/api/edu_resources_api.rb +38 -26
- data/lib/flat_api/api/group_api.rb +432 -9
- data/lib/flat_api/api/omr_api.rb +894 -0
- data/lib/flat_api/api/organization_api.rb +307 -35
- data/lib/flat_api/api/score_api.rb +129 -80
- data/lib/flat_api/api/task_api.rb +5 -5
- data/lib/flat_api/api/user_api.rb +45 -14
- data/lib/flat_api/api_client.rb +169 -96
- data/lib/flat_api/api_error.rb +3 -3
- data/lib/flat_api/api_model_base.rb +88 -0
- data/lib/flat_api/client.rb +69 -0
- data/lib/flat_api/configuration.rb +124 -25
- data/lib/flat_api/errors.rb +86 -0
- data/lib/flat_api/models/add_group_user200_response.rb +148 -0
- data/lib/flat_api/models/add_group_user_request.rb +165 -0
- data/lib/flat_api/models/api_access_token.rb +13 -80
- data/lib/flat_api/models/app_scopes.rb +6 -4
- data/lib/flat_api/models/assignment.rb +190 -85
- data/lib/flat_api/models/assignment_capabilities.rb +53 -80
- data/lib/flat_api/models/assignment_capabilities_can_publish_in_class_error.rb +33 -80
- data/lib/flat_api/models/assignment_copy.rb +5 -6
- data/lib/flat_api/models/assignment_copy_response.rb +187 -82
- data/lib/flat_api/models/assignment_copy_to_class.rb +23 -80
- data/lib/flat_api/models/assignment_copy_to_resource_library.rb +23 -80
- data/lib/flat_api/models/assignment_group.rb +232 -0
- data/lib/flat_api/models/assignment_submission.rb +104 -81
- data/lib/flat_api/models/assignment_submission_comment.rb +13 -80
- data/lib/flat_api/models/assignment_submission_comment_creation.rb +23 -80
- data/lib/flat_api/models/assignment_submission_comments.rb +13 -80
- data/lib/flat_api/models/assignment_submission_history.rb +33 -80
- data/lib/flat_api/models/assignment_submission_history_attachment.rb +13 -80
- data/lib/flat_api/models/assignment_submission_history_state.rb +3 -3
- data/lib/flat_api/models/assignment_submission_lti.rb +64 -86
- data/lib/flat_api/models/{assignment_submission_playback_inner.rb → assignment_submission_playback.rb} +36 -83
- data/lib/flat_api/models/assignment_submission_state.rb +3 -3
- data/lib/flat_api/models/assignment_submission_students_mode.rb +40 -0
- data/lib/flat_api/models/assignment_submission_update.rb +25 -81
- data/lib/flat_api/models/assignment_type.rb +5 -4
- data/lib/flat_api/models/assignment_update.rb +218 -87
- data/lib/flat_api/models/class_assignment.rb +219 -82
- data/lib/flat_api/models/class_assignment_all_of_canvas.rb +13 -80
- data/lib/flat_api/models/class_assignment_all_of_lti.rb +13 -80
- data/lib/flat_api/models/class_assignment_all_of_mfc.rb +13 -80
- data/lib/flat_api/models/class_assignment_update.rb +237 -94
- data/lib/flat_api/models/class_assignment_update_all_of_google_classroom.rb +13 -80
- data/lib/flat_api/models/class_assignment_update_all_of_microsoft_graph.rb +13 -80
- data/lib/flat_api/models/class_attachment_creation.rb +51 -86
- data/lib/flat_api/models/class_creation.rb +13 -80
- data/lib/flat_api/models/class_details.rb +85 -81
- data/lib/flat_api/models/class_details_canvas.rb +13 -80
- data/lib/flat_api/models/class_details_clever.rb +13 -80
- data/lib/flat_api/models/class_details_google_classroom.rb +13 -80
- data/lib/flat_api/models/class_details_google_drive.rb +13 -80
- data/lib/flat_api/models/class_details_issues.rb +13 -80
- data/lib/flat_api/models/class_details_issues_sync_inner.rb +15 -82
- data/lib/flat_api/models/class_details_lti.rb +28 -85
- data/lib/flat_api/models/class_details_mfc.rb +13 -80
- data/lib/flat_api/models/class_details_microsoft_graph.rb +13 -80
- data/lib/flat_api/models/class_grade_level.rb +3 -3
- data/lib/flat_api/models/class_roles.rb +3 -3
- data/lib/flat_api/models/class_state.rb +5 -4
- data/lib/flat_api/models/class_update.rb +13 -80
- data/lib/flat_api/models/collection.rb +182 -81
- data/lib/flat_api/models/collection_app.rb +13 -80
- data/lib/flat_api/models/collection_capabilities.rb +63 -80
- data/lib/flat_api/models/collection_contents.rb +166 -0
- data/lib/flat_api/models/collection_creation.rb +20 -99
- data/lib/flat_api/models/collection_modification.rb +17 -82
- data/lib/flat_api/models/collection_privacy.rb +3 -3
- data/lib/flat_api/models/collection_type.rb +7 -6
- data/lib/flat_api/models/credit_transaction.rb +388 -0
- data/lib/flat_api/models/edu_library.rb +63 -82
- data/lib/flat_api/models/edu_resource.rb +101 -84
- data/lib/flat_api/models/edu_resource_assignment_creation.rb +170 -0
- data/lib/flat_api/models/edu_resource_capabilities.rb +27 -84
- data/lib/flat_api/models/edu_resource_copy.rb +23 -80
- data/lib/flat_api/models/edu_resource_creation.rb +96 -86
- data/lib/flat_api/models/edu_resource_folder.rb +39 -84
- data/lib/flat_api/models/edu_resource_lti_link.rb +23 -80
- data/lib/flat_api/models/edu_resource_move.rb +23 -80
- data/lib/flat_api/models/edu_resource_privacy.rb +3 -3
- data/lib/flat_api/models/edu_resource_resource.rb +5 -6
- data/lib/flat_api/models/edu_resource_type.rb +3 -3
- data/lib/flat_api/models/edu_resource_update.rb +101 -86
- data/lib/flat_api/models/edu_resource_use_in_class.rb +23 -80
- data/lib/flat_api/models/flat_error_response.rb +47 -84
- data/lib/flat_api/models/google_classroom_coursework.rb +13 -80
- data/lib/flat_api/models/google_classroom_submission.rb +43 -80
- data/lib/flat_api/models/grade.rb +51 -0
- data/lib/flat_api/models/group.rb +14 -94
- data/lib/flat_api/models/group_creation.rb +238 -0
- data/lib/flat_api/models/group_details.rb +178 -84
- data/lib/flat_api/models/group_type.rb +6 -4
- data/lib/flat_api/models/license_mode.rb +3 -3
- data/lib/flat_api/models/license_sources.rb +3 -3
- data/lib/flat_api/models/lms_name.rb +3 -3
- data/lib/flat_api/models/lti_configuration.rb +56 -0
- data/lib/flat_api/models/lti_configuration1p1.rb +361 -0
- data/lib/flat_api/models/lti_configuration1p1_all_of_tool.rb +199 -0
- data/lib/flat_api/models/lti_configuration1p3.rb +106 -0
- data/lib/flat_api/models/lti_configuration1p3_base.rb +336 -0
- data/lib/flat_api/models/lti_configuration1p3_base_supported_services.rb +166 -0
- data/lib/flat_api/models/lti_configuration1p3_base_supported_services_ags.rb +179 -0
- data/lib/flat_api/models/lti_configuration1p3_base_supported_services_deep_linking.rb +159 -0
- data/lib/flat_api/models/lti_configuration1p3_base_supported_services_nrps.rb +169 -0
- data/lib/flat_api/models/lti_configuration1p3_base_tool.rb +199 -0
- data/lib/flat_api/models/lti_configuration1p3_deployment.rb +529 -0
- data/lib/flat_api/models/lti_configuration1p3_dynamic.rb +530 -0
- data/lib/flat_api/models/lti_configuration1p3_manual.rb +489 -0
- data/lib/flat_api/models/lti_configuration_base.rb +306 -0
- data/lib/flat_api/models/lti_configuration_create.rb +60 -0
- data/lib/flat_api/models/lti_configuration_create1p1.rb +210 -0
- data/lib/flat_api/models/lti_configuration_create1p3_deployment.rb +264 -0
- data/lib/flat_api/models/lti_configuration_create1p3_dynamic.rb +209 -0
- data/lib/flat_api/models/lti_configuration_create1p3_dynamic_platform_info.rb +159 -0
- data/lib/flat_api/models/lti_configuration_create1p3_manual.rb +270 -0
- data/lib/flat_api/models/lti_configuration_update.rb +104 -0
- data/lib/flat_api/models/lti_configuration_update_deployment.rb +169 -0
- data/lib/flat_api/models/lti_configuration_update_standalone.rb +219 -0
- data/lib/flat_api/models/lti_credentials.rb +29 -84
- data/lib/flat_api/models/lti_credentials_creation.rb +23 -80
- data/lib/flat_api/models/media_attachment.rb +43 -88
- data/lib/flat_api/models/media_score_sharing_mode.rb +3 -3
- data/lib/flat_api/models/microsoft_graph_assignment.rb +99 -88
- data/lib/flat_api/models/microsoft_graph_submission.rb +33 -80
- data/lib/flat_api/models/omr_capabilities.rb +480 -0
- data/lib/flat_api/models/omr_details_step_data.rb +228 -0
- data/lib/flat_api/models/omr_details_submission.rb +288 -0
- data/lib/flat_api/models/omr_detected_instrument.rb +260 -0
- data/lib/flat_api/models/omr_imported_metadata.rb +181 -0
- data/lib/flat_api/models/omr_instrument_override.rb +311 -0
- data/lib/flat_api/models/omr_job.rb +394 -0
- data/lib/flat_api/models/omr_job_creation.rb +238 -0
- data/lib/flat_api/models/omr_job_file_metadata.rb +199 -0
- data/lib/flat_api/models/omr_job_file_upload.rb +176 -0
- data/lib/flat_api/models/omr_job_file_upload_result.rb +159 -0
- data/lib/flat_api/models/omr_job_input_file.rb +176 -0
- data/lib/flat_api/models/omr_job_output.rb +40 -0
- data/lib/flat_api/models/omr_job_progress.rb +169 -0
- data/lib/flat_api/models/omr_job_result.rb +161 -0
- data/lib/flat_api/models/omr_job_retention.rb +176 -0
- data/lib/flat_api/models/omr_job_status.rb +44 -0
- data/lib/flat_api/models/omr_locale_details.rb +193 -0
- data/lib/flat_api/models/omr_pending_step.rb +213 -0
- data/lib/flat_api/models/omr_step_name.rb +39 -0
- data/lib/flat_api/models/organization_invitation.rb +54 -81
- data/lib/flat_api/models/organization_invitation_creation.rb +15 -82
- data/lib/flat_api/models/organization_roles.rb +5 -5
- data/lib/flat_api/models/organization_user_access_token_creation.rb +23 -80
- data/lib/flat_api/models/rename_group_request.rb +165 -0
- data/lib/flat_api/models/resource_collaborator.rb +43 -85
- data/lib/flat_api/models/resource_collaborator_creation.rb +13 -80
- data/lib/flat_api/models/resource_rights.rb +43 -85
- data/lib/flat_api/models/score_comment.rb +122 -80
- data/lib/flat_api/models/score_comment_context.rb +73 -80
- data/lib/flat_api/models/score_comment_creation.rb +24 -81
- data/lib/flat_api/models/score_comment_moderation.rb +13 -80
- data/lib/flat_api/models/score_comment_update.rb +18 -85
- data/lib/flat_api/models/score_comments_counts.rb +28 -85
- data/lib/flat_api/models/score_creation.rb +5 -6
- data/lib/flat_api/models/score_creation_builder_data.rb +24 -88
- data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data.rb +23 -80
- data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data_layout_data.rb +13 -80
- data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data_score_data.rb +24 -81
- data/lib/flat_api/models/score_creation_builder_data_all_of_builder_data_score_data_instruments.rb +33 -80
- data/lib/flat_api/models/score_creation_common.rb +14 -81
- data/lib/flat_api/models/score_creation_file_import.rb +39 -86
- data/lib/flat_api/models/score_creation_google_drive_import.rb +24 -81
- data/lib/flat_api/models/score_creation_type.rb +4 -5
- data/lib/flat_api/models/score_details.rb +180 -89
- data/lib/flat_api/models/score_details_all_of_me.rb +193 -0
- data/lib/flat_api/models/score_fork.rb +14 -83
- data/lib/flat_api/models/score_license.rb +4 -5
- data/lib/flat_api/models/score_likes_counts.rb +28 -106
- data/lib/flat_api/models/score_modification.rb +13 -80
- data/lib/flat_api/models/score_plays_counts.rb +28 -85
- data/lib/flat_api/models/score_privacy.rb +3 -3
- data/lib/flat_api/models/score_revision.rb +81 -87
- data/lib/flat_api/models/score_revision_creation.rb +23 -80
- data/lib/flat_api/models/score_revision_statistics.rb +13 -80
- data/lib/flat_api/models/score_source.rb +13 -80
- data/lib/flat_api/models/score_summary.rb +63 -80
- data/lib/flat_api/models/score_track.rb +94 -88
- data/lib/flat_api/models/score_track_creation.rb +13 -80
- data/lib/flat_api/models/score_track_creation_response.rb +165 -0
- data/lib/flat_api/models/score_track_point.rb +23 -80
- data/lib/flat_api/models/score_track_purpose.rb +3 -3
- data/lib/flat_api/models/score_track_state.rb +3 -3
- data/lib/flat_api/models/score_track_type.rb +3 -3
- data/lib/flat_api/models/score_track_update.rb +25 -81
- data/lib/flat_api/models/score_views_counts.rb +28 -85
- data/lib/flat_api/models/task.rb +62 -87
- data/lib/flat_api/models/task_export_options.rb +13 -80
- data/lib/flat_api/models/task_progress.rb +13 -80
- data/lib/flat_api/models/task_result.rb +13 -80
- data/lib/flat_api/models/teaching_theme.rb +47 -0
- data/lib/flat_api/models/tutteo_product.rb +3 -3
- data/lib/flat_api/models/user_admin_update.rb +17 -95
- data/lib/flat_api/models/user_azure_details.rb +13 -80
- data/lib/flat_api/models/user_basics.rb +43 -80
- data/lib/flat_api/models/user_community_profile_links.rb +13 -80
- data/lib/flat_api/models/user_creation.rb +21 -98
- data/lib/flat_api/models/user_details.rb +101 -96
- data/lib/flat_api/models/user_details_admin.rb +72 -85
- data/lib/flat_api/models/user_details_admin_all_of_license.rb +13 -80
- data/lib/flat_api/models/user_public.rb +89 -94
- data/lib/flat_api/models/user_public_summary.rb +58 -81
- data/lib/flat_api/models/user_signin_link.rb +24 -81
- data/lib/flat_api/models/user_signin_link_creation.rb +13 -80
- data/lib/flat_api/oauth.rb +128 -0
- data/lib/flat_api/pagination.rb +88 -0
- data/lib/flat_api/retry.rb +56 -0
- data/lib/flat_api/version.rb +4 -4
- data/lib/flat_api.rb +70 -5
- metadata +98 -330
- data/lib/flat_api/models/flat_locales.rb +0 -56
- data/spec/api/account_api_spec.rb +0 -47
- data/spec/api/class_api_spec.rb +0 -422
- data/spec/api/collection_api_spec.rb +0 -158
- data/spec/api/edu_resources_api_spec.rb +0 -181
- data/spec/api/group_api_spec.rb +0 -71
- data/spec/api/organization_api_spec.rb +0 -201
- data/spec/api/score_api_spec.rb +0 -440
- data/spec/api/task_api_spec.rb +0 -47
- data/spec/api/user_api_spec.rb +0 -75
- data/spec/models/api_access_token_spec.rb +0 -66
- data/spec/models/app_scopes_spec.rb +0 -30
- data/spec/models/assignment_capabilities_can_publish_in_class_error_spec.rb +0 -42
- data/spec/models/assignment_capabilities_spec.rb +0 -60
- data/spec/models/assignment_copy_response_spec.rb +0 -124
- data/spec/models/assignment_copy_spec.rb +0 -32
- data/spec/models/assignment_copy_to_class_spec.rb +0 -48
- data/spec/models/assignment_copy_to_resource_library_spec.rb +0 -42
- data/spec/models/assignment_spec.rb +0 -118
- data/spec/models/assignment_submission_comment_creation_spec.rb +0 -36
- data/spec/models/assignment_submission_comment_spec.rb +0 -72
- data/spec/models/assignment_submission_comments_spec.rb +0 -42
- data/spec/models/assignment_submission_history_attachment_spec.rb +0 -48
- data/spec/models/assignment_submission_history_spec.rb +0 -112
- data/spec/models/assignment_submission_history_state_spec.rb +0 -30
- data/spec/models/assignment_submission_lti_spec.rb +0 -36
- data/spec/models/assignment_submission_playback_inner_spec.rb +0 -42
- data/spec/models/assignment_submission_spec.rb +0 -144
- data/spec/models/assignment_submission_state_spec.rb +0 -30
- data/spec/models/assignment_submission_update_spec.rb +0 -66
- data/spec/models/assignment_type_spec.rb +0 -30
- data/spec/models/assignment_update_spec.rb +0 -100
- data/spec/models/class_assignment_all_of_canvas_spec.rb +0 -42
- data/spec/models/class_assignment_all_of_lti_spec.rb +0 -36
- data/spec/models/class_assignment_all_of_mfc_spec.rb +0 -42
- data/spec/models/class_assignment_spec.rb +0 -216
- data/spec/models/class_assignment_update_all_of_google_classroom_spec.rb +0 -36
- data/spec/models/class_assignment_update_all_of_microsoft_graph_spec.rb +0 -36
- data/spec/models/class_assignment_update_spec.rb +0 -150
- data/spec/models/class_attachment_creation_spec.rb +0 -76
- data/spec/models/class_creation_spec.rb +0 -64
- data/spec/models/class_details_canvas_spec.rb +0 -42
- data/spec/models/class_details_clever_spec.rb +0 -76
- data/spec/models/class_details_google_classroom_spec.rb +0 -42
- data/spec/models/class_details_google_drive_spec.rb +0 -42
- data/spec/models/class_details_issues_spec.rb +0 -36
- data/spec/models/class_details_issues_sync_inner_spec.rb +0 -52
- data/spec/models/class_details_lti_spec.rb +0 -48
- data/spec/models/class_details_mfc_spec.rb +0 -42
- data/spec/models/class_details_microsoft_graph_spec.rb +0 -36
- data/spec/models/class_details_spec.rb +0 -178
- data/spec/models/class_grade_level_spec.rb +0 -30
- data/spec/models/class_roles_spec.rb +0 -30
- data/spec/models/class_state_spec.rb +0 -30
- data/spec/models/class_update_spec.rb +0 -64
- data/spec/models/collection_app_spec.rb +0 -48
- data/spec/models/collection_capabilities_spec.rb +0 -60
- data/spec/models/collection_creation_spec.rb +0 -42
- data/spec/models/collection_modification_spec.rb +0 -42
- data/spec/models/collection_privacy_spec.rb +0 -30
- data/spec/models/collection_spec.rb +0 -114
- data/spec/models/collection_type_spec.rb +0 -30
- data/spec/models/edu_library_spec.rb +0 -62
- data/spec/models/edu_resource_capabilities_spec.rb +0 -48
- data/spec/models/edu_resource_copy_spec.rb +0 -36
- data/spec/models/edu_resource_creation_spec.rb +0 -48
- data/spec/models/edu_resource_folder_spec.rb +0 -36
- data/spec/models/edu_resource_lti_link_spec.rb +0 -36
- data/spec/models/edu_resource_move_spec.rb +0 -36
- data/spec/models/edu_resource_privacy_spec.rb +0 -30
- data/spec/models/edu_resource_resource_spec.rb +0 -32
- data/spec/models/edu_resource_spec.rb +0 -96
- data/spec/models/edu_resource_type_spec.rb +0 -30
- data/spec/models/edu_resource_update_spec.rb +0 -42
- data/spec/models/edu_resource_use_in_class_spec.rb +0 -42
- data/spec/models/flat_error_response_spec.rb +0 -54
- data/spec/models/flat_locales_spec.rb +0 -30
- data/spec/models/google_classroom_coursework_spec.rb +0 -54
- data/spec/models/google_classroom_submission_spec.rb +0 -48
- data/spec/models/group_details_spec.rb +0 -72
- data/spec/models/group_spec.rb +0 -76
- data/spec/models/group_type_spec.rb +0 -30
- data/spec/models/license_mode_spec.rb +0 -30
- data/spec/models/license_sources_spec.rb +0 -30
- data/spec/models/lms_name_spec.rb +0 -30
- data/spec/models/lti_credentials_creation_spec.rb +0 -42
- data/spec/models/lti_credentials_spec.rb +0 -84
- data/spec/models/media_attachment_spec.rb +0 -166
- data/spec/models/media_score_sharing_mode_spec.rb +0 -30
- data/spec/models/microsoft_graph_assignment_spec.rb +0 -54
- data/spec/models/microsoft_graph_submission_spec.rb +0 -42
- data/spec/models/organization_invitation_creation_spec.rb +0 -46
- data/spec/models/organization_invitation_spec.rb +0 -84
- data/spec/models/organization_roles_spec.rb +0 -30
- data/spec/models/organization_user_access_token_creation_spec.rb +0 -36
- data/spec/models/resource_collaborator_creation_spec.rb +0 -72
- data/spec/models/resource_collaborator_spec.rb +0 -112
- data/spec/models/resource_rights_spec.rb +0 -64
- data/spec/models/score_comment_context_spec.rb +0 -78
- data/spec/models/score_comment_creation_spec.rb +0 -66
- data/spec/models/score_comment_moderation_spec.rb +0 -46
- data/spec/models/score_comment_spec.rb +0 -130
- data/spec/models/score_comment_update_spec.rb +0 -54
- data/spec/models/score_comments_counts_spec.rb +0 -54
- data/spec/models/score_creation_builder_data_all_of_builder_data_layout_data_spec.rb +0 -82
- data/spec/models/score_creation_builder_data_all_of_builder_data_score_data_instruments_spec.rb +0 -60
- data/spec/models/score_creation_builder_data_all_of_builder_data_score_data_spec.rb +0 -66
- data/spec/models/score_creation_builder_data_all_of_builder_data_spec.rb +0 -42
- data/spec/models/score_creation_builder_data_spec.rb +0 -60
- data/spec/models/score_creation_common_spec.rb +0 -54
- data/spec/models/score_creation_file_import_spec.rb +0 -76
- data/spec/models/score_creation_google_drive_import_spec.rb +0 -60
- data/spec/models/score_creation_spec.rb +0 -32
- data/spec/models/score_creation_type_spec.rb +0 -30
- data/spec/models/score_details_spec.rb +0 -240
- data/spec/models/score_fork_spec.rb +0 -48
- data/spec/models/score_license_spec.rb +0 -30
- data/spec/models/score_likes_counts_spec.rb +0 -48
- data/spec/models/score_modification_spec.rb +0 -102
- data/spec/models/score_plays_counts_spec.rb +0 -48
- data/spec/models/score_privacy_spec.rb +0 -30
- data/spec/models/score_revision_creation_spec.rb +0 -58
- data/spec/models/score_revision_spec.rb +0 -78
- data/spec/models/score_revision_statistics_spec.rb +0 -54
- data/spec/models/score_source_spec.rb +0 -36
- data/spec/models/score_summary_spec.rb +0 -66
- data/spec/models/score_track_creation_spec.rb +0 -66
- data/spec/models/score_track_point_spec.rb +0 -52
- data/spec/models/score_track_purpose_spec.rb +0 -30
- data/spec/models/score_track_spec.rb +0 -108
- data/spec/models/score_track_state_spec.rb +0 -30
- data/spec/models/score_track_type_spec.rb +0 -30
- data/spec/models/score_track_update_spec.rb +0 -54
- data/spec/models/score_views_counts_spec.rb +0 -48
- data/spec/models/task_export_options_spec.rb +0 -36
- data/spec/models/task_progress_spec.rb +0 -42
- data/spec/models/task_result_spec.rb +0 -42
- data/spec/models/task_spec.rb +0 -100
- data/spec/models/tutteo_product_spec.rb +0 -30
- data/spec/models/user_admin_update_spec.rb +0 -66
- data/spec/models/user_azure_details_spec.rb +0 -48
- data/spec/models/user_basics_spec.rb +0 -94
- data/spec/models/user_community_profile_links_spec.rb +0 -66
- data/spec/models/user_creation_spec.rb +0 -76
- data/spec/models/user_details_admin_all_of_license_spec.rb +0 -60
- data/spec/models/user_details_admin_spec.rb +0 -142
- data/spec/models/user_details_spec.rb +0 -214
- data/spec/models/user_public_spec.rb +0 -178
- data/spec/models/user_public_summary_spec.rb +0 -118
- data/spec/models/user_signin_link_creation_spec.rb +0 -36
- data/spec/models/user_signin_link_spec.rb +0 -42
- data/spec/spec_helper.rb +0 -111
|
@@ -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, MIDI, Guitar Pro
|
|
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, 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](/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
|
-
The version of the OpenAPI document: 2.
|
|
6
|
+
The version of the OpenAPI document: 2.26.1
|
|
7
7
|
Contact: developers@flat.io
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
|
-
|
|
9
|
+
Generator version: 7.24.0
|
|
10
10
|
|
|
11
11
|
=end
|
|
12
12
|
|
|
@@ -43,7 +43,7 @@ module FlatApi
|
|
|
43
43
|
fail ArgumentError, "Missing the required parameter 'task' when calling TaskApi.get_task"
|
|
44
44
|
end
|
|
45
45
|
# resource path
|
|
46
|
-
local_var_path = '/tasks/{task}'.sub('{
|
|
46
|
+
local_var_path = '/tasks/{task}'.sub('{task}', CGI.escape(task.to_s))
|
|
47
47
|
|
|
48
48
|
# query parameters
|
|
49
49
|
query_params = opts[:query_params] || {}
|
|
@@ -51,7 +51,7 @@ module FlatApi
|
|
|
51
51
|
# header parameters
|
|
52
52
|
header_params = opts[:header_params] || {}
|
|
53
53
|
# HTTP header 'Accept' (if needed)
|
|
54
|
-
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
|
54
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
55
55
|
|
|
56
56
|
# form parameters
|
|
57
57
|
form_params = opts[:form_params] || {}
|
|
@@ -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, MIDI, Guitar Pro
|
|
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, 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](/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
|
-
The version of the OpenAPI document: 2.
|
|
6
|
+
The version of the OpenAPI document: 2.26.1
|
|
7
7
|
Contact: developers@flat.io
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
|
-
|
|
9
|
+
Generator version: 7.24.0
|
|
10
10
|
|
|
11
11
|
=end
|
|
12
12
|
|
|
@@ -43,7 +43,7 @@ module FlatApi
|
|
|
43
43
|
fail ArgumentError, "Missing the required parameter 'user' when calling UserApi.get_user"
|
|
44
44
|
end
|
|
45
45
|
# resource path
|
|
46
|
-
local_var_path = '/users/{user}'.sub('{
|
|
46
|
+
local_var_path = '/users/{user}'.sub('{user}', CGI.escape(user.to_s))
|
|
47
47
|
|
|
48
48
|
# query parameters
|
|
49
49
|
query_params = opts[:query_params] || {}
|
|
@@ -51,7 +51,7 @@ module FlatApi
|
|
|
51
51
|
# header parameters
|
|
52
52
|
header_params = opts[:header_params] || {}
|
|
53
53
|
# HTTP header 'Accept' (if needed)
|
|
54
|
-
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
|
54
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
55
55
|
|
|
56
56
|
# form parameters
|
|
57
57
|
form_params = opts[:form_params] || {}
|
|
@@ -120,7 +120,7 @@ module FlatApi
|
|
|
120
120
|
end
|
|
121
121
|
|
|
122
122
|
# resource path
|
|
123
|
-
local_var_path = '/users/{user}/likes'.sub('{
|
|
123
|
+
local_var_path = '/users/{user}/likes'.sub('{user}', CGI.escape(user.to_s))
|
|
124
124
|
|
|
125
125
|
# query parameters
|
|
126
126
|
query_params = opts[:query_params] || {}
|
|
@@ -132,7 +132,7 @@ module FlatApi
|
|
|
132
132
|
# header parameters
|
|
133
133
|
header_params = opts[:header_params] || {}
|
|
134
134
|
# HTTP header 'Accept' (if needed)
|
|
135
|
-
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
|
135
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
136
136
|
|
|
137
137
|
# form parameters
|
|
138
138
|
form_params = opts[:form_params] || {}
|
|
@@ -164,10 +164,15 @@ module FlatApi
|
|
|
164
164
|
end
|
|
165
165
|
|
|
166
166
|
# List user's scores
|
|
167
|
-
# Get the list of public scores owned by a User.
|
|
167
|
+
# Get the list of public scores owned by a User. If you want to access to private scores, please use the [Collections API](#tag/Collection). For example `GET /v2/collections/allScores/scores` to list all recently updated scores.
|
|
168
168
|
# @param user [String] Unique identifier of a Flat user. If you authenticated, you can use `me` to refer to the current user.
|
|
169
169
|
# @param [Hash] opts the optional parameters
|
|
170
|
-
# @option opts [
|
|
170
|
+
# @option opts [Boolean] :paginate When set to `true`, the API will return a paginated result. When set to `false` or unset, the API will return all the scores. If this parameter is unset or false, then limit/sort/direction/next/previous will be ignored. (default to false)
|
|
171
|
+
# @option opts [String] :sort Sort
|
|
172
|
+
# @option opts [String] :direction Sort direction
|
|
173
|
+
# @option opts [Integer] :limit This is the maximum number of objects that may be returned (default to 25)
|
|
174
|
+
# @option opts [String] :_next An opaque string cursor to fetch the next page of data. The paginated API URLs are returned in the `Link` header when requesting the API. These URLs will contain a `next` and `previous` cursor based on the available data.
|
|
175
|
+
# @option opts [String] :previous An opaque string cursor to fetch the previous page of data. The paginated API URLs are returned in the `Link` header when requesting the API. These URLs will contain a `next` and `previous` cursor based on the available data.
|
|
171
176
|
# @return [Array<ScoreDetails>]
|
|
172
177
|
def get_user_scores(user, opts = {})
|
|
173
178
|
data, _status_code, _headers = get_user_scores_with_http_info(user, opts)
|
|
@@ -175,10 +180,15 @@ module FlatApi
|
|
|
175
180
|
end
|
|
176
181
|
|
|
177
182
|
# List user's scores
|
|
178
|
-
# Get the list of public scores owned by a User.
|
|
183
|
+
# Get the list of public scores owned by a User. If you want to access to private scores, please use the [Collections API](#tag/Collection). For example `GET /v2/collections/allScores/scores` to list all recently updated scores.
|
|
179
184
|
# @param user [String] Unique identifier of a Flat user. If you authenticated, you can use `me` to refer to the current user.
|
|
180
185
|
# @param [Hash] opts the optional parameters
|
|
181
|
-
# @option opts [
|
|
186
|
+
# @option opts [Boolean] :paginate When set to `true`, the API will return a paginated result. When set to `false` or unset, the API will return all the scores. If this parameter is unset or false, then limit/sort/direction/next/previous will be ignored. (default to false)
|
|
187
|
+
# @option opts [String] :sort Sort
|
|
188
|
+
# @option opts [String] :direction Sort direction
|
|
189
|
+
# @option opts [Integer] :limit This is the maximum number of objects that may be returned (default to 25)
|
|
190
|
+
# @option opts [String] :_next An opaque string cursor to fetch the next page of data. The paginated API URLs are returned in the `Link` header when requesting the API. These URLs will contain a `next` and `previous` cursor based on the available data.
|
|
191
|
+
# @option opts [String] :previous An opaque string cursor to fetch the previous page of data. The paginated API URLs are returned in the `Link` header when requesting the API. These URLs will contain a `next` and `previous` cursor based on the available data.
|
|
182
192
|
# @return [Array<(Array<ScoreDetails>, Integer, Hash)>] Array<ScoreDetails> data, response status code and response headers
|
|
183
193
|
def get_user_scores_with_http_info(user, opts = {})
|
|
184
194
|
if @api_client.config.debugging
|
|
@@ -188,17 +198,38 @@ module FlatApi
|
|
|
188
198
|
if @api_client.config.client_side_validation && user.nil?
|
|
189
199
|
fail ArgumentError, "Missing the required parameter 'user' when calling UserApi.get_user_scores"
|
|
190
200
|
end
|
|
201
|
+
allowable_values = ["creationDate", "modificationDate", "title"]
|
|
202
|
+
if @api_client.config.client_side_validation && opts[:'sort'] && !allowable_values.include?(opts[:'sort'])
|
|
203
|
+
fail ArgumentError, "invalid value for \"sort\", must be one of #{allowable_values}"
|
|
204
|
+
end
|
|
205
|
+
allowable_values = ["asc", "desc"]
|
|
206
|
+
if @api_client.config.client_side_validation && opts[:'direction'] && !allowable_values.include?(opts[:'direction'])
|
|
207
|
+
fail ArgumentError, "invalid value for \"direction\", must be one of #{allowable_values}"
|
|
208
|
+
end
|
|
209
|
+
if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
|
|
210
|
+
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling UserApi.get_user_scores, must be smaller than or equal to 100.'
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
|
|
214
|
+
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling UserApi.get_user_scores, must be greater than or equal to 1.'
|
|
215
|
+
end
|
|
216
|
+
|
|
191
217
|
# resource path
|
|
192
|
-
local_var_path = '/users/{user}/scores'.sub('{
|
|
218
|
+
local_var_path = '/users/{user}/scores'.sub('{user}', CGI.escape(user.to_s))
|
|
193
219
|
|
|
194
220
|
# query parameters
|
|
195
221
|
query_params = opts[:query_params] || {}
|
|
196
|
-
query_params[:'
|
|
222
|
+
query_params[:'paginate'] = opts[:'paginate'] if !opts[:'paginate'].nil?
|
|
223
|
+
query_params[:'sort'] = opts[:'sort'] if !opts[:'sort'].nil?
|
|
224
|
+
query_params[:'direction'] = opts[:'direction'] if !opts[:'direction'].nil?
|
|
225
|
+
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
|
|
226
|
+
query_params[:'next'] = opts[:'_next'] if !opts[:'_next'].nil?
|
|
227
|
+
query_params[:'previous'] = opts[:'previous'] if !opts[:'previous'].nil?
|
|
197
228
|
|
|
198
229
|
# header parameters
|
|
199
230
|
header_params = opts[:header_params] || {}
|
|
200
231
|
# HTTP header 'Accept' (if needed)
|
|
201
|
-
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
|
232
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
202
233
|
|
|
203
234
|
# form parameters
|
|
204
235
|
form_params = opts[:form_params] || {}
|
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, MIDI, Guitar Pro
|
|
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, 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](/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
|
-
The version of the OpenAPI document: 2.
|
|
6
|
+
The version of the OpenAPI document: 2.26.1
|
|
7
7
|
Contact: developers@flat.io
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
|
-
|
|
9
|
+
Generator version: 7.24.0
|
|
10
10
|
|
|
11
11
|
=end
|
|
12
12
|
|
|
@@ -15,7 +15,9 @@ require 'json'
|
|
|
15
15
|
require 'logger'
|
|
16
16
|
require 'tempfile'
|
|
17
17
|
require 'time'
|
|
18
|
-
require '
|
|
18
|
+
require 'faraday'
|
|
19
|
+
require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
|
|
20
|
+
require 'marcel'
|
|
19
21
|
|
|
20
22
|
|
|
21
23
|
module FlatApi
|
|
@@ -32,7 +34,7 @@ module FlatApi
|
|
|
32
34
|
# @option config [Configuration] Configuration for initializing the object, default to Configuration.default
|
|
33
35
|
def initialize(config = Configuration.default)
|
|
34
36
|
@config = config
|
|
35
|
-
@user_agent = "
|
|
37
|
+
@user_agent = "Flat-SDK-Ruby/#{FlatApi::VERSION} (ruby/#{RUBY_VERSION})"
|
|
36
38
|
@default_headers = {
|
|
37
39
|
'Content-Type' => 'application/json',
|
|
38
40
|
'User-Agent' => @user_agent
|
|
@@ -46,39 +48,71 @@ module FlatApi
|
|
|
46
48
|
# Call an API with given options.
|
|
47
49
|
#
|
|
48
50
|
# @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
|
|
49
|
-
# the data deserialized from response body (
|
|
51
|
+
# the data deserialized from response body (could be nil), response status code and response headers.
|
|
52
|
+
# BEGIN retry wrapper (tools/patches/20_errors.py)
|
|
53
|
+
# Every request goes through the retry policy, which is why it wraps call_api_once rather
|
|
54
|
+
# than living in each of the generated methods. The decision needs the typed error and not the
|
|
55
|
+
# status code: Flat returns 403 both for rate limiting and for a genuine authorization failure,
|
|
56
|
+
# and only the response body's +code+ separates them. See RetryPolicy.
|
|
50
57
|
def call_api(http_method, path, opts = {})
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
response = request.run
|
|
58
|
+
policy = @config.retry_policy || RetryPolicy.disabled
|
|
59
|
+
attempt = 0
|
|
54
60
|
|
|
55
|
-
|
|
56
|
-
|
|
61
|
+
begin
|
|
62
|
+
attempt += 1
|
|
63
|
+
call_api_once(http_method, path, opts)
|
|
64
|
+
rescue StandardError => e
|
|
65
|
+
raise unless policy.should_retry?(e, http_method, attempt)
|
|
66
|
+
|
|
67
|
+
sleep(policy.delay_for(e, attempt))
|
|
68
|
+
retry
|
|
57
69
|
end
|
|
70
|
+
end
|
|
71
|
+
# END retry wrapper (tools/patches/20_errors.py)
|
|
58
72
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
73
|
+
def call_api_once(http_method, path, opts = {})
|
|
74
|
+
stream = nil
|
|
75
|
+
begin
|
|
76
|
+
response = connection(opts).public_send(http_method.to_sym.downcase) do |req|
|
|
77
|
+
request = build_request(http_method, path, req, opts)
|
|
78
|
+
stream = download_file(request) if opts[:return_type] == 'File' || opts[:return_type] == 'Binary'
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
if config.debugging
|
|
82
|
+
config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
unless response.success?
|
|
86
|
+
if response.status == 0 && response.respond_to?(:return_message)
|
|
87
|
+
# Errors from libcurl will be made visible here
|
|
88
|
+
fail ApiError.new(code: 0,
|
|
89
|
+
message: response.return_message)
|
|
90
|
+
else
|
|
91
|
+
fail FlatApi.error_from_response(
|
|
92
|
+
response.status,
|
|
93
|
+
(begin
|
|
94
|
+
JSON.parse(response.body)
|
|
95
|
+
rescue StandardError
|
|
96
|
+
response.body
|
|
97
|
+
end),
|
|
98
|
+
response.headers || {}
|
|
99
|
+
)
|
|
100
|
+
end
|
|
71
101
|
end
|
|
102
|
+
rescue Faraday::TimeoutError
|
|
103
|
+
fail ApiError.new('Connection timed out')
|
|
104
|
+
rescue Faraday::ConnectionFailed
|
|
105
|
+
fail ApiError.new('Connection failed')
|
|
72
106
|
end
|
|
73
107
|
|
|
74
|
-
if opts[:return_type] == 'File'
|
|
75
|
-
data =
|
|
108
|
+
if opts[:return_type] == 'File' || opts[:return_type] == 'Binary'
|
|
109
|
+
data = deserialize_file(response, stream)
|
|
76
110
|
elsif opts[:return_type]
|
|
77
111
|
data = deserialize(response, opts[:return_type])
|
|
78
112
|
else
|
|
79
113
|
data = nil
|
|
80
114
|
end
|
|
81
|
-
return data, response.
|
|
115
|
+
return data, response.status, response.headers
|
|
82
116
|
end
|
|
83
117
|
|
|
84
118
|
# Builds the HTTP request
|
|
@@ -89,47 +123,33 @@ module FlatApi
|
|
|
89
123
|
# @option opts [Hash] :query_params Query parameters
|
|
90
124
|
# @option opts [Hash] :form_params Query parameters
|
|
91
125
|
# @option opts [Object] :body HTTP body (JSON/XML)
|
|
92
|
-
# @return [
|
|
93
|
-
def build_request(http_method, path, opts = {})
|
|
126
|
+
# @return [Faraday::Request] A Faraday Request
|
|
127
|
+
def build_request(http_method, path, request, opts = {})
|
|
94
128
|
url = build_request_url(path, opts)
|
|
95
129
|
http_method = http_method.to_sym.downcase
|
|
96
130
|
|
|
97
131
|
header_params = @default_headers.merge(opts[:header_params] || {})
|
|
98
132
|
query_params = opts[:query_params] || {}
|
|
99
133
|
form_params = opts[:form_params] || {}
|
|
100
|
-
follow_location = opts[:follow_location] || true
|
|
101
134
|
|
|
102
135
|
update_params_for_auth! header_params, query_params, opts[:auth_names]
|
|
103
136
|
|
|
104
|
-
# set ssl_verifyhosts option based on @config.verify_ssl_host (true/false)
|
|
105
|
-
_verify_ssl_host = @config.verify_ssl_host ? 2 : 0
|
|
106
|
-
|
|
107
|
-
req_opts = {
|
|
108
|
-
:method => http_method,
|
|
109
|
-
:headers => header_params,
|
|
110
|
-
:params => query_params,
|
|
111
|
-
:params_encoding => @config.params_encoding,
|
|
112
|
-
:timeout => @config.timeout,
|
|
113
|
-
:ssl_verifypeer => @config.verify_ssl,
|
|
114
|
-
:ssl_verifyhost => _verify_ssl_host,
|
|
115
|
-
:sslcert => @config.cert_file,
|
|
116
|
-
:sslkey => @config.key_file,
|
|
117
|
-
:verbose => @config.debugging,
|
|
118
|
-
:followlocation => follow_location
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
# set custom cert, if provided
|
|
122
|
-
req_opts[:cainfo] = @config.ssl_ca_cert if @config.ssl_ca_cert
|
|
123
|
-
|
|
124
137
|
if [:post, :patch, :put, :delete].include?(http_method)
|
|
125
138
|
req_body = build_request_body(header_params, form_params, opts[:body])
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
@config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
|
|
139
|
+
if config.debugging
|
|
140
|
+
config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
|
|
129
141
|
end
|
|
130
142
|
end
|
|
143
|
+
request.headers = header_params
|
|
144
|
+
request.body = req_body
|
|
145
|
+
|
|
146
|
+
# Overload default options only if provided
|
|
147
|
+
request.options.params_encoder = config.params_encoder if config.params_encoder
|
|
148
|
+
request.options.timeout = config.timeout if config.timeout
|
|
131
149
|
|
|
132
|
-
|
|
150
|
+
request.url url
|
|
151
|
+
request.params = query_params
|
|
152
|
+
request
|
|
133
153
|
end
|
|
134
154
|
|
|
135
155
|
# Builds the HTTP request body
|
|
@@ -140,13 +160,16 @@ module FlatApi
|
|
|
140
160
|
# @return [String] HTTP body data in the form of string
|
|
141
161
|
def build_request_body(header_params, form_params, body)
|
|
142
162
|
# http form
|
|
143
|
-
if header_params['Content-Type'] == 'application/x-www-form-urlencoded'
|
|
144
|
-
|
|
163
|
+
if header_params['Content-Type'] == 'application/x-www-form-urlencoded'
|
|
164
|
+
data = URI.encode_www_form(form_params)
|
|
165
|
+
elsif header_params['Content-Type'] == 'multipart/form-data'
|
|
145
166
|
data = {}
|
|
146
167
|
form_params.each do |key, value|
|
|
147
168
|
case value
|
|
148
|
-
when ::File, ::
|
|
149
|
-
|
|
169
|
+
when ::File, ::Tempfile
|
|
170
|
+
data[key] = Faraday::FilePart.new(value.path, Marcel::MimeType.for(Pathname.new(value.path)))
|
|
171
|
+
when ::Array, nil
|
|
172
|
+
# let Faraday handle Array and nil parameters
|
|
150
173
|
data[key] = value
|
|
151
174
|
else
|
|
152
175
|
data[key] = value.to_s
|
|
@@ -160,49 +183,95 @@ module FlatApi
|
|
|
160
183
|
data
|
|
161
184
|
end
|
|
162
185
|
|
|
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
186
|
def download_file(request)
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
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)
|
|
187
|
+
stream = []
|
|
188
|
+
|
|
189
|
+
# handle streaming Responses
|
|
190
|
+
request.options.on_data = Proc.new do |chunk, overall_received_bytes|
|
|
191
|
+
stream << chunk
|
|
190
192
|
end
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
193
|
+
|
|
194
|
+
stream
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
def deserialize_file(response, stream)
|
|
198
|
+
body = response.body
|
|
199
|
+
encoding = body.encoding
|
|
200
|
+
|
|
201
|
+
# reconstruct content
|
|
202
|
+
content = stream.join
|
|
203
|
+
content = content.unpack('m').join if response.headers['Content-Transfer-Encoding'] == 'binary'
|
|
204
|
+
content = content.force_encoding(encoding)
|
|
205
|
+
|
|
206
|
+
# return byte stream
|
|
207
|
+
return content if @config.return_binary_data == true
|
|
208
|
+
|
|
209
|
+
# return file instead of binary data
|
|
210
|
+
content_disposition = response.headers['Content-Disposition']
|
|
211
|
+
if content_disposition && content_disposition =~ /filename=/i
|
|
212
|
+
filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
|
|
213
|
+
prefix = sanitize_filename(filename)
|
|
199
214
|
else
|
|
200
|
-
|
|
215
|
+
prefix = 'download-'
|
|
201
216
|
end
|
|
217
|
+
prefix = prefix + '-' unless prefix.end_with?('-')
|
|
202
218
|
|
|
219
|
+
tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
|
|
220
|
+
tempfile.write(content)
|
|
221
|
+
tempfile.close
|
|
222
|
+
|
|
223
|
+
config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
|
|
224
|
+
"with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
|
|
225
|
+
"will be deleted automatically with GC. It's also recommended to delete the temp file "\
|
|
226
|
+
"explicitly with `tempfile.delete`"
|
|
203
227
|
tempfile
|
|
204
228
|
end
|
|
205
229
|
|
|
230
|
+
def connection(opts)
|
|
231
|
+
opts[:header_params]['Content-Type'] == 'multipart/form-data' ? connection_multipart : connection_regular
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
def connection_multipart
|
|
235
|
+
@connection_multipart ||= build_connection do |conn|
|
|
236
|
+
conn.request :multipart
|
|
237
|
+
conn.request :url_encoded
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
def connection_regular
|
|
242
|
+
@connection_regular ||= build_connection
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
def build_connection
|
|
246
|
+
Faraday.new(url: config.base_url, ssl: ssl_options, proxy: config.proxy) do |conn|
|
|
247
|
+
basic_auth(conn)
|
|
248
|
+
config.configure_middleware(conn)
|
|
249
|
+
yield(conn) if block_given?
|
|
250
|
+
conn.adapter(Faraday.default_adapter)
|
|
251
|
+
config.configure_connection(conn)
|
|
252
|
+
end
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
def ssl_options
|
|
256
|
+
{
|
|
257
|
+
ca_file: config.ssl_ca_file,
|
|
258
|
+
verify: config.ssl_verify,
|
|
259
|
+
verify_mode: config.ssl_verify_mode,
|
|
260
|
+
client_cert: config.ssl_client_cert,
|
|
261
|
+
client_key: config.ssl_client_key
|
|
262
|
+
}
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
def basic_auth(conn)
|
|
266
|
+
if config.username && config.password
|
|
267
|
+
if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
|
|
268
|
+
conn.request(:authorization, :basic, config.username, config.password)
|
|
269
|
+
else
|
|
270
|
+
conn.request(:basic_auth, config.username, config.password)
|
|
271
|
+
end
|
|
272
|
+
end
|
|
273
|
+
end
|
|
274
|
+
|
|
206
275
|
# Check if the given MIME is a JSON MIME.
|
|
207
276
|
# JSON MIME examples:
|
|
208
277
|
# application/json
|
|
@@ -212,7 +281,7 @@ module FlatApi
|
|
|
212
281
|
# @param [String] mime MIME
|
|
213
282
|
# @return [Boolean] True if the MIME is application/json
|
|
214
283
|
def json_mime?(mime)
|
|
215
|
-
(mime == '*/*') || !(mime =~
|
|
284
|
+
(mime == '*/*') || !(mime =~ /^Application\/.*json(?!p)(;.*)?/i).nil?
|
|
216
285
|
end
|
|
217
286
|
|
|
218
287
|
# Deserialize the response to the given return type.
|
|
@@ -279,9 +348,13 @@ module FlatApi
|
|
|
279
348
|
data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
|
|
280
349
|
end
|
|
281
350
|
else
|
|
282
|
-
# models (e.g. Pet) or oneOf
|
|
351
|
+
# models (e.g. Pet) or oneOf/anyOf
|
|
283
352
|
klass = FlatApi.const_get(return_type)
|
|
284
|
-
klass.respond_to?(:openapi_one_of)
|
|
353
|
+
if klass.respond_to?(:openapi_one_of) || klass.respond_to?(:openapi_any_of)
|
|
354
|
+
klass.build(data)
|
|
355
|
+
else
|
|
356
|
+
klass.build_from_hash(data)
|
|
357
|
+
end
|
|
285
358
|
end
|
|
286
359
|
end
|
|
287
360
|
|
|
@@ -291,7 +364,7 @@ module FlatApi
|
|
|
291
364
|
# @param [String] filename the filename to be sanitized
|
|
292
365
|
# @return [String] the sanitized filename
|
|
293
366
|
def sanitize_filename(filename)
|
|
294
|
-
filename.
|
|
367
|
+
filename.split(/[\/\\]/).last
|
|
295
368
|
end
|
|
296
369
|
|
|
297
370
|
def build_request_url(path, opts = {})
|
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, MIDI, Guitar Pro
|
|
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, 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](/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
|
-
The version of the OpenAPI document: 2.
|
|
6
|
+
The version of the OpenAPI document: 2.26.1
|
|
7
7
|
Contact: developers@flat.io
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
|
-
|
|
9
|
+
Generator version: 7.24.0
|
|
10
10
|
|
|
11
11
|
=end
|
|
12
12
|
|