package Ġcom . jel on doc a . music app . repositories Ċ Ċ import Ġcom . jel on doc a . music app . models . User Model Ċ import Ġcom . jel on doc a . music app . services . UserService Ċ import Ġcom . jel on doc a . music app . services . factory . Service Factory Ċ import Ġretrofit 2 . Call Ċ Ċ class ĠUser Repository Ġ{ ĊĠĠĠ Ġprivate Ġvar ĠuserService : ĠUserService ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġservice Factory Ġ= ĠService Factory () ĊĠĠĠĠĠĠĠ ĠuserService Ġ= Ġservice Factory . getInstance UserService () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate User ( user : ĠUser Model ): ĠUser Model Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcall : ĠCall < User Model > Ġ= ĠuserService . createUser ( user ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġcall . execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresponse . body () !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException ( response . error Body (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} catch Ġ( e : ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }