Esempio n. 1
0
        public ApiKeysModule(ICommandDispatcher commandDispatcher,
                             IIdentityProvider identityProvider,
                             IValidatorResolver validatorResolver,
                             IApiKeyStorage apiKeyStorage)
            : base(commandDispatcher, validatorResolver, identityProvider, modulePath: "api-keys")
        {
            Get("", async args => await FetchCollection <BrowseApiKeys, ApiKey>
                    (async x => await apiKeyStorage.BrowseAsync(x))
                .MapTo(x => new
            {
                Name = x.Name,
                Key  = x.Key
            })
                .HandleAsync());

            Get("{name}", async args => await Fetch <GetApiKey, ApiKey>
                    (async x => await apiKeyStorage.GetAsync(x.UserId, x.Name))
                .MapTo(x => new
            {
                Name = x.Name,
                Key  = x.Key
            })
                .HandleAsync());

            Post("", async args => await For <RequestNewApiKey>()
                 .OnSuccessAccepted("api-keys")
                 .DispatchAsync());

            Delete("{name}", async args => await For <DeleteApiKey>()
                   .OnSuccess(HttpStatusCode.NoContent)
                   .DispatchAsync());
        }
Esempio n. 2
0
        public async Task HandleAsync(ApiKeyCreated @event)
        {
            var apiKey = await _apiKeyStorage.GetAsync(@event.UserId, @event.Name);

            if (apiKey.HasNoValue)
            {
                return;
            }

            _identityProvider.SetUserIdForApiKey(apiKey.Value.Key, @event.UserId);
        }