package Ġcom . accent ure . creative products . examples . server Ċ Ċ import Ġcom . accent ure . creative products . examples . server . data . user . UserRepository Ċ import Ġcom . exp edi ag roup . graphql . server . execution . GraphQL Context Factory Ċ import Ġgraphql . GraphQL Context Ċ import Ġio . ktor . request .* Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġcontext Ġbased Ġon Ġthe Ġrequest Ċ Ġ*/ Ċ class ĠK tor GraphQL Context Factory ( ĊĠĠĠ Ġprivate Ġval Ġuser Repository : ĠUser Repository , Ċ ) Ġ: ĠGraphQL Context Factory < Nothing , ĠApplication Request > Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġgenerate Context Map ( request : ĠApplication Request ): ĠMap < String , ĠAny > Ġ= Ġbuild Map Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠcurrentUser Ġ= Ġrequest . headers [" x - token "] ?. let Ġ{ Ġtoken Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Repository . findBy Token ( token )?. email ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( currentUser Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( CURRENT _ USER _ EMAIL , ĠcurrentUser ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġgenerate Context ( request : ĠApplication Request ): ĠNothing ? Ġ= Ġnull Ċ } Ċ Ċ private Ġconst Ġval ĠCURRENT _ USER _ EMAIL Ġ= Ġ" currentUser Email " Ċ val ĠGraphQL Context . currentUser Email : ĠString ? Ġget () Ġ= Ġget ( CURRENT _ USER _ EMAIL )