66from flask import request
77from flask_restx import Namespace , Resource , fields
88
9- from tern_api import reports , tern_app
9+ from tern_api import constants , tern_app
1010from tern_api .api .v1 .common_models import (
1111 async_response_model ,
1212 error_model ,
1313 report_model ,
1414)
15+ from tern_api .reports import status , submit
1516
1617ns = Namespace ("/reports" , description = "Tern Bill of Materials Report" )
1718
@@ -53,14 +54,14 @@ class Report(Resource):
5354 )
5455
5556 @ns .response (200 , "OK" , report_response_request )
56- @ns .expect (report_parameters )
57+ @ns .expect (report_parameters , validate = True )
5758 def post (self ):
5859 """Tern BoM report
5960
6061 **Note**: This request will be processed assynchronous.
6162 """
6263 payload = request .json
63- response = reports . request (payload )
64+ response = submit (payload )
6465 return response .to_response ()
6566
6667
@@ -79,13 +80,28 @@ class ReportStatus(Resource):
7980 data_status_response = ns .model (
8081 "data_status_response" ,
8182 {
83+ "cache" : fields .Boolean (
84+ description = "Requested using cache?" ,
85+ required = True ,
86+ example = True ,
87+ ),
88+ "id" : fields .String (
89+ description = "Unique Identification for request" ,
90+ required = False ,
91+ example = "19f035a711644eab84ef5a38ceb5572e" ,
92+ ),
93+ "message" : fields .String (
94+ description = "Message" ,
95+ required = False ,
96+ exampple = "Request is running" ,
97+ ),
98+ "report" : fields .Nested (report_model ),
8299 "status" : fields .String (
83100 description = "Status of request" ,
84101 required = True ,
85- example = "FINISH" ,
86- enum = ["UNKNOWN" , "FINISH" , "RUNNING" , "FAIL" ],
102+ example = constants . task_status . SUCCESS . value ,
103+ enum = [s . value for s in constants . task_status ],
87104 ),
88- "result" : fields .Nested (report_model ),
89105 },
90106 )
91107 report_status_response = ns .model (
@@ -97,10 +113,10 @@ class ReportStatus(Resource):
97113 )
98114
99115 @ns .response (200 , "OK" , report_status_response )
100- @ns .expect (report_status_parameters )
116+ @ns .expect (report_status_parameters , validate = True )
101117 def post (self ):
102118 """Request Tern BoM report status/result"""
103119
104120 payload = request .json
105- response = reports . status (payload .get ("id" ))
121+ response = status (payload .get ("id" ))
106122 return response .to_response ()
0 commit comments