package Ġio . mor fly . client . rest Ċ Ċ import Ġcom . jak ew h art on . ret rofit 2 . converter . kotlin x . serialization . as Converter Factory Ċ import Ġio . mor fly . client . domain . Posts Repository Ċ import Ġio . mor fly . client . domain . Users Repository Ċ import Ġio . mor fly . client . ui . comments . Comments ViewModel Ċ import Ġio . mor fly . client . ui . posts . Posts ViewModel Ċ import Ġkotlinx . serialization . Experimental Serialization Api Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġokhttp 3 . MediaType . Companion . to MediaType Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġorg . k oin . android x . view model . dsl . viewModel Ċ import Ġorg . k oin . core . qual ifier . named Ċ import Ġorg . k oin . dsl . module Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . create ĊĊ Ċ val ĠREST Ġ= Ġnamed (" REST ") Ċ Ċ @ Opt In ( Experimental Serialization Api :: class ) Ċ val Ġrest Module Ġ= Ġmodule Ġ{ ĊĠĠĠ Ġsingle Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogging Interceptor Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠ Ġlogging Interceptor . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĊĠĠĠĠĠĠĠ ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Network Interceptor ( logging Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĠĠĠ Ġsingle < REST Service > Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠcontentType Ġ= Ġ" application / json ". to MediaType () ĊĠĠĠĠĠĠĠ ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( REST Service . BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( get ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Json . as Converter Factory ( contentType )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠ Ġ} ĊĠĠĠ Ġsingle < Posts Repository >( REST ) Ġ{ ĠREST Posts Repository ( get ()) Ġ} ĊĠĠĠ Ġsingle < Users Repository >( REST ) Ġ{ ĠREST Users Repository ( get ()) Ġ} ĊĠĠĠ ĠviewModel ( REST ) Ġ{ ĠPosts ViewModel ( get ( REST )) Ġ} ĊĠĠĠ ĠviewModel ( REST ) Ġ{ ĠComments ViewModel ( get ( REST )) Ġ} Ċ }