package Ġchat . rocket . android . helper Ċ Ċ import Ġchat . rocket . android . server . domain . GetCurrent Server Interactor Ċ import Ġchat . rocket . android . server . domain . Token Repository Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Response Ċ Ċ class ĠF resco Auth Interceptor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtoken Repository : ĠToken Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcurrent Server Interactor : ĠGetCurrent Server Interactor Ċ ) Ġ: ĠInter ceptor Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠ Ġcurrent Server Interactor . get ()?. let Ġ{ Ġserver Url Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġtoken Repository . get ( server Url ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ let Ġtoken ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġrequest . url (). newBuilder (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd QueryParameter (" rc _ uid ", Ġtoken . userId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd QueryParameter (" rc _ token ", Ġtoken . auth Token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= Ġrequest . newBuilder (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( request ) ĊĠĠĠ Ġ} Ċ }