class ProfileController {

    @GetMapping("/profile")
    public ModelAndView showProfile(Principal principal) throws Exception {
        final ModelAndView mav = new ModelAndView("pages/profile/index");

        mav.addObject("isVerifiedGithub", isVerifiedGithub(principal));
        mav.addObject("isVerifiedStackOverflow", isVerifiedStackOverflow(principal));
        mav.addObject("refLink", getRefLink(principal, "web"));
        mav.addObject("refShareTwitter", processRefLinkMessage(messageService.getMessageByKey("REFERRAL_SHARE.twitter"), getRefLink(principal, "twitter")));
        mav.addObject("refShareLinkedin", processRefLinkMessage(messageService.getMessageByKey("REFERRAL_SHARE.linkedin"), getRefLink(principal, "linkedin")));
        mav.addObject("refShareFacebook", processRefLinkMessage(messageService.getMessageByKey("REFERRAL_SHARE.facebook"), getRefLink(principal, "facebook")));
        mav.addObject("arkaneWalletEndpoint", getArkaneWalletEndpoint());

        return mav;
    }

    public  ProfileController(final ApplicationEventPublisher eventPublisher,
                             final ProfileService profileService,
                             final MessageService messageService,
                             final ReferralService referralService,
                             final GithubBountyService githubBountyService,
                             final @Value("${network.arkane.environment}") String arkaneEnvironment,
                             final StackOverflowBountyService stackOverflowBountyService);

}