package Ġcom . f att merchant . om ni . data . repository Ċ Ċ import Ġcom . f att merchant . om ni . data . models . Invoice Ċ import Ġcom . f att merchant . om ni . data . models . Om ni Exception Ċ Ċ internal Ġinterface ĠInvoice Repository Ġ: ĠModel Repository < Invoice > Ġ{ ĊĊĠĠĠ Ġclass ĠUpdate Invoice Exception ( message : ĠString ? Ġ= Ġnull ) Ġ: ĠOm ni Exception (" Could Ġnot Ġupdate Ġinvoice ", Ġmessage ) ĊĠĠĠ Ġclass ĠCreate Invoice Exception ( message : ĠString ? Ġ= Ġnull ) Ġ: ĠOm ni Exception (" Could Ġnot Ġcreate Ġinvoice ", Ġmessage ) ĊĠĠĠ Ġclass ĠGet Invoice Exception ( message : ĠString ? Ġ= Ġnull ) Ġ: ĠOm ni Exception (" Could Ġnot Ġget Ġin voices ", Ġmessage ) ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcreate ( model : ĠInvoice , Ġerror : Ġ( Om ni Exception ) Ġ-> ĠUnit ): ĠInvoice ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġom ni Api . create Invoice ( model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror ( Create Invoice Exception ( it . message )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġupdate ( model : ĠInvoice , Ġerror : Ġ( Om ni Exception ) Ġ-> ĠUnit ): ĠInvoice ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( model . id Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror ( Update Invoice Exception (" Cannot Ġupdate Ġinvoice Ġwith Ġnull Ġid ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġom ni Api . update Invoice ( model ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget ( error : Ġ( Om ni Exception ) Ġ-> ĠUnit ): ĠList < Invoice >? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġom ni Api . getIn voices Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror ( Get Invoice Exception ( it . message )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget ById ( id : ĠString , Ġerror : Ġ( Om ni Exception ) Ġ-> ĠUnit ): ĠInvoice ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġom ni Api . get Invoice ( id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror ( Get Invoice Exception ( it . message )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ