1616
1717package controllers
1818
19- import connectors .DelegatedAuthorityConnector
19+ import java .util .UUID
20+
21+ import config .FrontendAuthConnector
22+ import connectors .{DelegatedAuthorityConnector , ThirdPartyApplicationConnector }
2023import play .api .mvc .Action
2124import uk .gov .hmrc .play .frontend .auth .connectors .AuthConnector
2225import uk .gov .hmrc .play .frontend .controller .FrontendController
23- import config .FrontendAuthConnector
2426
2527import scala .concurrent .Future
2628
2729trait Revocation extends FrontendController with Authentication {
2830
2931 val authConnector : AuthConnector
3032 val delegatedAuthorityConnector : DelegatedAuthorityConnector
33+ val thirdPartyApplicationConnector : ThirdPartyApplicationConnector
3134
3235 val start = Action .async { implicit request =>
3336 Future .successful(Ok (views.html.revocation.start()))
@@ -37,9 +40,27 @@ trait Revocation extends FrontendController with Authentication {
3740 delegatedAuthorityConnector.fetchApplicationAuthorities()
3841 .map(applications => Ok (views.html.revocation.authorizedApplications(applications)))
3942 }
43+
44+ def withdrawPage (id : UUID ) = authenticated.async { implicit user => implicit request =>
45+ thirdPartyApplicationConnector.fetchApplication(id)
46+ .map(application => Ok (views.html.revocation.withdrawPermission(application)))
47+ }
48+
49+ def withdrawAction (id : UUID ) = authenticated.async { implicit user => implicit request =>
50+ delegatedAuthorityConnector.revokeApplicationAuthority(id).map { _ =>
51+ Redirect (routes.Revocation .withdrawConfirmationPage(id))
52+ }
53+ }
54+
55+ def withdrawConfirmationPage (id : UUID ) = authenticated.async { implicit user => implicit request =>
56+ thirdPartyApplicationConnector.fetchApplication(id).map { app =>
57+ Ok (views.html.revocation.permissionWithdrawn(app))
58+ }
59+ }
4060}
4161
4262object Revocation extends Revocation {
4363 override val authConnector = FrontendAuthConnector
4464 override val delegatedAuthorityConnector = DelegatedAuthorityConnector
65+ override val thirdPartyApplicationConnector = ThirdPartyApplicationConnector
4566}
0 commit comments