def register_api_endpoint(endpoint_name, resource): endpoint_path = '/{}/'.format(endpoint_name) endpoint_detail_path = endpoint_path + '<{}>/'.format( resource.query_key_field) endpoint_detail_path_spec = endpoint_path + '{{{}}}/'.format( resource.query_key_field) resource_view = resource.as_view(endpoint_name) resource_detail_view = resource.as_view(endpoint_name + '_detail') api_blueprint.add_url_rule(endpoint_path, view_func=resource_view, methods=['GET']) api_blueprint.add_url_rule(endpoint_path, view_func=resource_view, methods=['POST']) api_blueprint.add_url_rule(endpoint_detail_path, view_func=resource_detail_view, methods=['GET', 'PUT', 'DELETE']) api_blueprint.apispec.add_path(path=endpoint_path, view=resource.get_list) api_blueprint.apispec.add_path(path=endpoint_path, view=resource.post) api_blueprint.apispec.add_path(path=endpoint_detail_path_spec, view=resource.get_detail) api_blueprint.apispec.add_path(path=endpoint_detail_path_spec, view=resource.put) api_blueprint.apispec.add_path(path=endpoint_detail_path_spec, view=resource.delete)
schema = SchemaMapping.get_schema_for_model_class( sample_relation.__class__.__name__) serialized_sample_relations.append( schema().dump(sample_relation).data) return jsonify({'results': serialized_sample_relations}) except DoesNotExist: return jsonify({ 'error': 'No object with key \'{}\' found'.format(kwargs['id']) }), 404 register_api_endpoint('sample', SampleResource) api_blueprint.add_url_rule('/sample/<id>/download/', view_func=SampleResource().download_file, methods=['GET'], endpoint='sample_download') api_blueprint.apispec.add_path(path='/sample/{id}/download/', view=SampleResource.download_file) api_blueprint.add_url_rule('/sample/submit_file/', view_func=SampleResource().submit_file, methods=['POST']) api_blueprint.apispec.add_path(path='/sample/submit_file/', view=SampleResource.submit_file) api_blueprint.add_url_rule('/sample/submit_ip/', view_func=SampleResource().submit_ip, methods=['POST']) api_blueprint.apispec.add_path(path='/sample/submit_ip/', view=SampleResource.submit_ip)
400: description: The request is malformed. """ data = request.get_json() schema = SsdeepSampleRelationSchema() sample_relation = schema.load(data).data sample_relation.save() return jsonify(schema.dump(sample_relation).data), 201 register_api_endpoint('sample_relation', SampleRelationResource) api_blueprint.add_url_rule( '/sample_relation/submit_dropped_by/', view_func=SampleRelationResource().submit_dropped_by_sample_relation, methods=['POST']) api_blueprint.apispec.add_path( path='/sample_relation/submit_dropped_by/', view=SampleRelationResource.submit_dropped_by_sample_relation) api_blueprint.add_url_rule( '/sample_relation/submit_resolved_by/', view_func=SampleRelationResource().submit_resolved_by_sample_relation, methods=['POST']) api_blueprint.apispec.add_path( path='/sample_relation/submit_resolved_by/', view=SampleRelationResource.submit_resolved_by_sample_relation) api_blueprint.add_url_rule( '/sample_relation/submit_contacted_by/',
'error': 'No object with key \'{}\' found'.format( kwargs['object_name']) }), 404 else: file = obj.read() return file, 200, {'Content-Type': 'binary/octet-stream'} except DoesNotExist: return jsonify({ 'error': 'No object with key \'{}\' found'.format(kwargs['id']) }), 404 register_api_endpoint('report', ReportResource) api_blueprint.add_url_rule('/report/<id>/json_report_object/<object_name>/', view_func=ReportResource().get_json_report_object, methods=['GET'], endpoint='json_report_object') api_blueprint.apispec.add_path( path='/report/{id}/json_report_object/{object_name}/', view=ReportResource.get_json_report_object) api_blueprint.add_url_rule('/report/<id>/raw_report_object/<object_name>/', view_func=ReportResource().get_raw_report_object, methods=['GET'], endpoint='raw_report_object') api_blueprint.apispec.add_path( path='/report/{id}/raw_report_object/{object_name}/', view=ReportResource.get_raw_report_object)
if parsed_report.errors: return jsonify(parsed_report.errors), 400 report = parsed_report.data report.sample = scheduled_analysis.sample report.analysis_system = scheduled_analysis.analysis_system_instance.analysis_system for key, f in request.files.items(): if f.mimetype == "application/json": report.add_json_report_object(f) else: report.add_raw_report_object(f) report.save() scheduled_analysis.delete() return jsonify(ReportSchema().dump(report).data), 201 except DoesNotExist: return jsonify({ 'error': 'No object with key \'{}\' found'.format(kwargs['id']) }), 404 register_api_endpoint('scheduled_analysis', ScheduledAnalysisResource) api_blueprint.add_url_rule('/scheduled_analysis/<id>/submit_report/', view_func=ScheduledAnalysisResource().submit_report, methods=['POST']) api_blueprint.apispec.add_path(path='/scheduled_analysis/{id}/submit_report/', view=ScheduledAnalysisResource.submit_report)
'error': 'No object with key \'{}\' found'.format( kwargs[self.query_key_field]) }), 404 analysis_system_instance.update_last_seen() scheduled_analyses = ScheduledAnalysis.objects( analysis_system_instance=analysis_system_instance) serialized_result = ScheduledAnalysisSchema( many=True).dump(scheduled_analyses) return jsonify({ 'results': serialized_result.data, }) else: return jsonify({ 'error': 'Analysis instance \'{}\' not found'.format( kwargs[self.query_key_field]) }), 404 register_api_endpoint('analysis_system_instance', AnalysisSystemInstanceResource) api_blueprint.add_url_rule( '/analysis_system_instance/<uuid>/scheduled_analyses/', view_func=AnalysisSystemInstanceResource().scheduled_analyses, methods=['GET']) api_blueprint.apispec.add_path( '/analysis_system_instance/{uuid}/scheduled_analyses/', view=AnalysisSystemInstanceResource.scheduled_analyses)