public async Task Login(LoginInfo loginInfo, CancellationToken cancellationToken) { var instance = new Instance(loginInfo.Instance); var mastodonClient = await _clientRepository.FindMastodonClient(instance, cancellationToken); if (mastodonClient is null) { MastodonClientId clientId; MastodonClientSecret clientSecret; try { var(id, secret) = await _registerClient.RegisterClient(loginInfo, cancellationToken); clientId = new MastodonClientId(id); clientSecret = new MastodonClientSecret(secret); } catch { _showRegisterClientError.ShowRegisterClientError(); return; } mastodonClient = _clientRepository.CreateMastodonClient(instance, clientId, clientSecret); await _clientRepository.SaveMastodonClient(mastodonClient, cancellationToken); } var authorizeUrl = await mastodonClient.GetAuthorizeUri(); _showAuthUrl.ShowAuthUrl(new AuthorizationUrl(authorizeUrl)); }
public MastodonClient(Instance instance, MastodonClientId clientId, MastodonClientSecret clientSecret) { Instance = instance; ClientId = clientId; ClientSecret = clientSecret; }
public MastodonClient CreateMastodonClient(Instance instance, MastodonClientId clientId, MastodonClientSecret clientSecret) { return(new(instance, clientId, clientSecret)); }