package Ġs late kit . apis . middleware Ċ Ċ import Ġs late kit . common . Context Ċ import Ġs late kit . common . Inputs Update able Ċ import Ġs late kit . common . requests . Request Ċ Ċ /** Ċ Ġ* ĠA Ġ" Rew riter " Ġbased Ġmiddle - ware Ġallows Ġallows Ġfor Ġre writing Ġthe ĠAPI Ġpath / call Ċ Ġ* Ċ Ġ*/ Ċ open Ġclass ĠRew riter Ġ: ĠMiddleware Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRew rites Ġthe Ġcalls Ġand Ġreturns Ġa Ġnew Ġrequest ĊĠĠĠĠ Ġ* Ġ@ param Ġctx Ġ: ĠThe Ġapplication Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġreq Ġ: ĠThe Ġrequest ĊĠĠĠĠ Ġ* Ġ@ param Ġsource : ĠThe Ġorigin ating Ġsource Ġfor Ġthis Ġhook Ġ( Ġe . g . ĠApi Container Ġ) ĊĠĠĠĠ Ġ* Ġ@ param Ġargs Ġ: ĠAdditional Ġarguments Ġsupplied Ġby Ġthe Ġsource ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġrewrite ( ctx : ĠContext , Ġreq : ĠRequest , Ġsource : ĠAny , Ġargs : ĠMap < String , ĠAny >): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġreq ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrewrite Action ( req : ĠRequest , Ġnew Action : ĠString , Ġformat : ĠString ? Ġ= Ġnull ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġfirst Ġand Ġsecond Ġpart ĊĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= Ġreq . parts [ 0 ] ĊĠĠĠĠĠĠĠ Ġval Ġsecond Ġ= Ġreq . parts [ 1 ] ĊĠĠĠĠĠĠĠ Ġreturn Ġreq . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath Ġ= Ġ"$ first /$ second /$ new Action ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparts Ġ= ĠlistOf ( first , Ġsecond , Ġnew Action ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= Ġformat Ġ?: Ġreq . output ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrewrite Action With Param ( req : ĠRequest , Ġnew Action : ĠString , Ġkey : ĠString , Ġvalue : ĠString ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġfirst Ġand Ġsecond Ġpart ĊĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= Ġreq . parts [ 0 ] ĊĠĠĠĠĠĠĠ Ġval Ġsecond Ġ= Ġreq . parts [ 1 ] ĊĠĠĠĠĠĠĠ Ġreturn Ġreq . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath Ġ= Ġ"$ first /$ second /$ new Action ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparts Ġ= ĠlistOf ( first , Ġsecond , Ġnew Action ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġ( req . data Ġas ĠInputs Update able ). add ( key , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ