@@ -2784,6 +2784,55 @@ async def v2_connections_create_invitation(request: web.BaseRequest):
2784
2784
2785
2785
return web .json_response (result )
2786
2786
2787
+ class GenerateFirebaseDynamicLinkForConnectionInvitationMatchInfoSchema (OpenAPISchema ):
2788
+ """Schema for matching path parameters in generate firebase dynamic link for connection invitation handler"""
2789
+
2790
+ conn_id = fields .Str (
2791
+ description = "Connection identifier" , example = UUIDFour .EXAMPLE , required = True
2792
+ )
2793
+
2794
+ class GenerateFirebaseDynamicLinkForConnectionInvitationResponseSchema (OpenAPISchema ):
2795
+ """Schema for response of generate firebase dynamic link for connection invitation handler"""
2796
+
2797
+ # Firebase dynamic link
2798
+ firebase_dynamic_link = fields .Str (
2799
+ description = "Firebase dynamic link" , example = "https://example.page.link/UVWXYZuvwxyz12345"
2800
+ )
2801
+
2802
+ @docs (
2803
+ tags = ["connection" ],
2804
+ summary = "Generate firebase dynamic link for connection invitation" ,
2805
+ )
2806
+ @match_info_schema (GenerateFirebaseDynamicLinkForConnectionInvitationMatchInfoSchema ())
2807
+ @response_schema (GenerateFirebaseDynamicLinkForConnectionInvitationResponseSchema (), 200 )
2808
+ async def generate_firebase_dynamic_link_for_connection_invitation_handler (request : web .BaseRequest ):
2809
+ """
2810
+ Request handler for generating firebase dynamic link for connection invitation.
2811
+
2812
+ Args:
2813
+ request: aiohttp request object
2814
+
2815
+ Returns:
2816
+ The firebase dynamic link
2817
+
2818
+ """
2819
+
2820
+ context = request .app ["request_context" ]
2821
+ conn_id = request .match_info ["conn_id" ]
2822
+
2823
+ # Initialise MyData DID Manager.
2824
+ mydata_did_manager : ADAManager = ADAManager (context = context )
2825
+ try :
2826
+ # Call the function
2827
+ firebase_dynamic_link = await mydata_did_manager .generate_firebase_dynamic_link_for_connection_invitation (conn_id )
2828
+
2829
+ except (ConnectionManagerError , BaseModelError ) as err :
2830
+ raise web .HTTPBadRequest (reason = err .roll_up ) from err
2831
+
2832
+ return web .json_response ({
2833
+ "firebase_dynamic_link" : firebase_dynamic_link
2834
+ })
2835
+
2787
2836
2788
2837
async def register (app : web .Application ):
2789
2838
@@ -2966,8 +3015,14 @@ async def register(app: web.Application):
2966
3015
"/json-ld/didcomm/processed-data/connections/{connection_id}" ,
2967
3016
send_json_ld_didcomm_processed_data_message_handler ,
2968
3017
),
2969
- web .post ("/connections/create-invitation/v2" ,
2970
- v2_connections_create_invitation ),
3018
+ web .post (
3019
+ "/connections/create-invitation/v2" ,
3020
+ v2_connections_create_invitation
3021
+ ),
3022
+ web .post (
3023
+ "/connections/{conn_id}/invitation/firebase" ,
3024
+ generate_firebase_dynamic_link_for_connection_invitation_handler
3025
+ )
2971
3026
]
2972
3027
)
2973
3028
0 commit comments