File tree Expand file tree Collapse file tree 3 files changed +91
-0
lines changed
monitoring/mock_uss/riddp Expand file tree Collapse file tree 3 files changed +91
-0
lines changed Original file line number Diff line number Diff line change 11from monitoring .mock_uss import webapp
2+ from monitoring .mock_uss .riddp .config import KEY_RID_VERSION
3+ from ...monitorlib .rid import RIDVersion
4+
5+ rid_version : RIDVersion = webapp .config [KEY_RID_VERSION ]
26
37
48@webapp .route ("/riddp/status" )
59def riddp_status ():
610 return "Mock RID Display Provider ok"
711
812
13+ if rid_version == RIDVersion .f3411_19 :
14+ from . import routes_riddp_v19
15+ elif rid_version == RIDVersion .f3411_22a :
16+ from . import routes_riddp_v22a
17+ else :
18+ raise NotImplementedError (
19+ f"Mock USS does not yet support RID version { rid_version } "
20+ )
21+
922from . import routes_observation
1023from . import routes_behavior
Original file line number Diff line number Diff line change 1+ import flask
2+ from implicitdict import ImplicitDict
3+ from uas_standards .astm .f3411 .v19 .api import (
4+ OperationID ,
5+ OPERATIONS ,
6+ PutIdentificationServiceAreaNotificationParameters ,
7+ )
8+ from uas_standards .astm .f3411 .v19 .constants import (
9+ Scope ,
10+ )
11+
12+ from monitoring .mock_uss import webapp
13+ from monitoring .mock_uss .auth import requires_scope
14+
15+
16+ def rid_v19_operation (op_id : OperationID ):
17+ op = OPERATIONS [op_id ]
18+ path = op .path .replace ("{" , "<" ).replace ("}" , ">" )
19+ return webapp .route ('/mock/riddp/' + path , methods = [op .verb ])
20+
21+
22+ @rid_v19_operation (OperationID .PostIdentificationServiceArea )
23+ @requires_scope (Scope .Write )
24+ def ridsp_notify_isa_v19 (id : str ):
25+ try :
26+ json = flask .request .json
27+ if json is None :
28+ raise ValueError ("Request did not contain a JSON payload" )
29+ ImplicitDict .parse (json , PutIdentificationServiceAreaNotificationParameters )
30+ except ValueError as e :
31+ msg = "Unable to parse PutIdentificationServiceAreaNotificationParameters JSON request: {}" .format (
32+ e
33+ )
34+ return msg , 400
35+
36+ return (
37+ flask .jsonify (None ),
38+ 204 ,
39+ )
Original file line number Diff line number Diff line change 1+ import flask
2+ from implicitdict import ImplicitDict
3+ from uas_standards .astm .f3411 .v22a .api import (
4+ OperationID ,
5+ OPERATIONS ,
6+ PutIdentificationServiceAreaNotificationParameters ,
7+ )
8+ from uas_standards .astm .f3411 .v22a .constants import (
9+ Scope ,
10+ )
11+
12+ from monitoring .mock_uss import webapp
13+ from monitoring .mock_uss .auth import requires_scope
14+
15+
16+ def rid_v22a_operation (op_id : OperationID ):
17+ op = OPERATIONS [op_id ]
18+ path = op .path .replace ("{" , "<" ).replace ("}" , ">" )
19+ return webapp .route ('/mock/riddp' + path , methods = [op .verb ])
20+
21+
22+ @rid_v22a_operation (OperationID .PostIdentificationServiceArea )
23+ @requires_scope (Scope .ServiceProvider )
24+ def ridsp_notify_isa_v22a (id : str ):
25+ try :
26+ json = flask .request .json
27+ if json is None :
28+ raise ValueError ("Request did not contain a JSON payload" )
29+ ImplicitDict .parse (json , PutIdentificationServiceAreaNotificationParameters )
30+ except ValueError as e :
31+ msg = "Unable to parse PutIdentificationServiceAreaNotificationParameters JSON request: {}" .format (
32+ e
33+ )
34+ return msg , 400
35+
36+ return (
37+ flask .jsonify (None ),
38+ 204 ,
39+ )
You can’t perform that action at this time.
0 commit comments