Skip to content

Commit 6917e9a

Browse files
Cater for Zenodo searches being more unreliable
1 parent 1e30490 commit 6917e9a

3 files changed

Lines changed: 5 additions & 1 deletion

File tree

.env.dist

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
ORCID_URL=https://api.sandbox.orcid.org
22
REDIS_URL=redis://localhost:6379
33
ZENODO_URL=https://sandbox.zenodo.org
4+
ZENODO_API_KEY=zenodo-api-key

src/Config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ const redisConfig: Config.Config<RedisConfig> = Config.nested(
2020
const zenodoConfig: Config.Config<Omit<ZenodoConfig, 'rateLimit'>> = Config.nested(
2121
Config.all({
2222
url: Config.mapAttempt(Config.string('URL'), url => new URL(url)),
23+
apiKey: Config.secret('API_KEY'),
2324
}),
2425
'ZENODO',
2526
)

src/Zenodo.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { HttpClient } from '@effect/platform'
22
import { type ParseResult, Schema } from '@effect/schema'
3-
import { Context, Effect, type RateLimiter, type Record } from 'effect'
3+
import { Context, Effect, type RateLimiter, type Record, Secret } from 'effect'
44
import { DoiSchema } from './Doi.js'
55
import type * as OrcidId from './OrcidId.js'
66
import * as Temporal from './Temporal.js'
@@ -12,6 +12,7 @@ type GetRecordsForOrcidIdError = HttpClient.error.HttpClientError | ParseResult.
1212

1313
export interface ZenodoConfig {
1414
readonly url: URL
15+
readonly apiKey: Secret.Secret
1516
readonly rateLimit: RateLimiter.RateLimiter
1617
}
1718

@@ -79,6 +80,7 @@ const zenodoClient = Effect.gen(function* (_) {
7980
HttpClient.client.filterStatusOk,
8081
HttpClient.client.mapRequest(HttpClient.request.acceptJson),
8182
HttpClient.client.mapRequest(HttpClient.request.prependUrl(new URL('/api/', config.url).href)),
83+
HttpClient.client.mapRequest(HttpClient.request.bearerToken(Secret.value(config.apiKey))),
8284
HttpClient.client.transform(config.rateLimit),
8385
)
8486
})

0 commit comments

Comments
 (0)