from buildbot.www.oauth2 import OAuth2Auth
from urllib.parse import urljoin


class GiteaAuth(OAuth2Auth):
    name = 'Gitea'
    faIcon = 'mug-tea'

    AUTH_URL = 'login/oauth/authorize'
    TOKEN_URL = 'login/oauth/access_token'

    def __init__(self, endpoint, client_id, client_secret, **kwargs):
        super(GiteaAuth, self).__init__(client_id, client_secret, **kwargs)
        self.resourceEndpoint = endpoint
        self.authUri = urljoin(endpoint, self.AUTH_URL)
        self.tokenUri = urljoin(endpoint, self.TOKEN_URL)

    def getUserInfoFromOAuthClient(self, c):
        return self.get(c, '/api/v1/user')
