package Ġcom . base . app . data . network Ċ Ċ import Ġcom . base . app . data . dao . User Dao Ċ import Ġcom . base . app . shared . Constants . AUTHORIZATION Ċ import Ġcom . base . app . shared . Constants . TOKEN _ PREFIX Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Response Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Singleton Ċ class ĠAuth Interceptor Ġ( private Ġval Ġdb : ĠUser Dao ) Ġ: ĠInter ceptor Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġauthenticated Request Ġ= Ġchain ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. request () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () ĊĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġdb . getToken () ĊĠĠĠĠĠĠĠ Ġtoken ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthenticated Request . header ( AUTHORIZATION , ĠTOKEN _ PREFIX + it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( authenticated Request . build ()) ĊĠĠĠ Ġ} Ċ }