package Ġcom . jo a ogo es . mar vel wiki . network Ċ Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Response ĊĊ Ċ private Ġconst Ġval ĠTIMESTAMP _ KEY Ġ= Ġ" ts " Ċ private Ġconst Ġval ĠHASH _ KEY Ġ= Ġ" hash " Ċ private Ġconst Ġval ĠAPI KEY _ KEY Ġ= Ġ" apikey " Ċ Ċ class ĠAuth Interceptor ( ĊĠĠĠ Ġprivate Ġval ĠpublicKey : ĠString , ĊĠĠĠ Ġprivate Ġval ĠprivateKey : ĠString , Ċ ) Ġ: ĠInter ceptor Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmar vel Auth Hash Generator Ġ= ĠMar vel Auth Hash Generator () ĊĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtimestamp Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġhash : ĠString ? Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmar vel Auth Hash Generator . generate ( timestamp . toString (), ĠpublicKey , ĠprivateKey ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġrequest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add QueryParameter ( TIMESTAMP _ KEY , Ġtimestamp . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add QueryParameter ( API KEY _ KEY , ĠpublicKey ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add QueryParameter ( HASH _ KEY , Ġhash ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġrequest Ġ= Ġrequest . newBuilder (). url ( url ). build () ĊĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( request ) ĊĠĠĠ Ġ} Ċ }