package Ġid . kotlin . student . features . student Ċ Ċ import Ġid . kotlin . student . core . domain . Default Observer Ċ import Ġid . kotlin . student . core . domain . Entity Ċ import Ġid . kotlin . student . core . presentation . Model Ċ import Ġid . kotlin . student . core . presentation . Presenter Ċ import Ġid . kotlin . student . ext . response Ċ Ċ class ĠStudent Presenter ( ĊĠĠĠ Ġprivate Ġval Ġuse case : ĠStudent Use case Ċ ) Ġ: ĠPres enter < Student View >() Ġ{ ĊĊĠ Ġfun Ġget Student () Ġ{ ĊĠĠĠ Ġget View (). on Show Loading () ĊĠĠĠ Ġuse case . execute ( ĊĠĠĠĠĠĠĠ ĠStudent Use case Observer (), ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġinner Ġclass ĠStudent Use case Observer Ġ: ĠDefault Observer < Student Entity >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonSuccess ( entity : ĠStudent Entity ) Ġ{ ĊĠĠĠĠĠ Ġval Ġstudent Ġ= Ġentity . student . map Ġ{ Ġmodel Ġ-> ĊĠĠĠĠĠĠĠ ĠStudent Model . Student ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġmodel . name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemail Ġ= Ġmodel . email ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġmodel Ġ= ĠStudent Model ( student Ġ= Ġstudent ) ĊĊĠĠĠĠĠ Ġget View (). on Hide Loading () ĊĠĠĠĠĠ Ġget View (). on Fetch Success ( model Ġ= Ġmodel ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( exception : ĠThrowable ) Ġ{ ĊĠĠĠĠĠ Ġval Ġentity Ġ= ĠEntity ( message Ġ= Ġexception . response (). message ) ĊĠĠĠĠĠ Ġval Ġmodel Ġ= ĠModel ( message Ġ= Ġentity . message ) ĊĊĠĠĠĠĠ Ġget View (). on Hide Loading () ĊĠĠĠĠĠ Ġget View (). on Fetch Failed ( model Ġ= Ġmodel ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }