Skip to content

Commit

Permalink
fix(int-1004): retry query issue
Browse files Browse the repository at this point in the history
- Removed useless chunk of code
  • Loading branch information
Thiago Saife Rodrigues committed Aug 3, 2023
1 parent 6c881c9 commit d41fe28
Showing 1 changed file with 55 additions and 63 deletions.
118 changes: 55 additions & 63 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,13 @@ class Storyblok {
const protocol = config.https === false ? 'http' : 'https'

if (!config.oauthToken) {
endpoint = `${protocol}://${getRegion(config.region)}/${'v2' as Version}`
endpoint = `${protocol}://${getRegion(config.region)}/${
'v2' as Version
}`
} else {
endpoint = `${protocol}://${getRegion(config.region)}/${'v1' as Version}`
endpoint = `${protocol}://${getRegion(config.region)}/${
'v1' as Version
}`
}
}

Expand All @@ -105,10 +109,13 @@ class Storyblok {
headers.set(header, config.headers[header])
}
}

if (!headers.has(STORYBLOK_AGENT)) {
headers.set(STORYBLOK_AGENT, STORYBLOK_JS_CLIENT_AGENT.defaultAgentName)
headers.set( STORYBLOK_JS_CLIENT_AGENT.defaultAgentVersion, STORYBLOK_JS_CLIENT_AGENT.packageVersion)
headers.set(
STORYBLOK_JS_CLIENT_AGENT.defaultAgentVersion,
STORYBLOK_JS_CLIENT_AGENT.packageVersion
)
}

let rateLimit = 5 // per second for cdn api
Expand Down Expand Up @@ -538,70 +545,55 @@ class Storyblok {
}
}

return new Promise((resolve, reject) => {
return new Promise(async (resolve, reject) => {
try {
;(async () => {
try {
const res = await this.throttle('get', url, params)

let response = { data: res.data, headers: res.headers } as ISbResult

if (res.headers?.['per-page']) {
response = Object.assign({}, response, {
perPage: res.headers['per-page']
? parseInt(res.headers['per-page'])
: 0,
total: res.headers['per-page']
? parseInt(res.headers['total'])
: 0,
})
}

if (res.status != 200) {
return reject(res)
}

if (response.data.story || response.data.stories) {
const resolveId = (this.resolveCounter =
++this.resolveCounter % 1000)
await this.resolveStories(response.data, params, `${resolveId}`)
}

if (params.version === 'published' && url != '/cdn/spaces/me') {
await provider.set(cacheKey, response)
}

if (response.data.cv && params.token) {
if (
params.version == 'draft' &&
cacheVersions[params.token] != response.data.cv
) {
await this.flushCache()
}

cacheVersions[params.token] = response.data.cv
}

return resolve(response)
} catch (error: Error | any) {
return reject(error)
const res = await this.throttle('get', url, params)

let response = { data: res.data, headers: res.headers } as ISbResult

if (res.headers?.['per-page']) {
response = Object.assign({}, response, {
perPage: res.headers['per-page']
? parseInt(res.headers['per-page'])
: 0,
total: res.headers['per-page'] ? parseInt(res.headers['total']) : 0,
})
}

if (response.data.story || response.data.stories) {
const resolveId = (this.resolveCounter = ++this.resolveCounter % 1000)
await this.resolveStories(response.data, params, `${resolveId}`)
}

if (params.version === 'published' && url != '/cdn/spaces/me') {
await provider.set(cacheKey, response)
}

if (response.data.cv && params.token) {
if (
params.version == 'draft' &&
cacheVersions[params.token] != response.data.cv
) {
await this.flushCache()
}
})()

cacheVersions[params.token] = response.data.cv
}

return resolve(response)
} catch (error: Error | any) {
;async () => {
if (error.response && error.response.status === 429) {
retries = retries ? retries + 1 : 0

if (retries < this.maxRetries) {
console.log(`Hit rate limit. Retrying in ${retries} seconds.`)
await this.helpers.delay(1000 * retries)
return this.cacheResponse(url, params, retries)
.then(resolve)
.catch(reject)
}
if (error.response && error.response.status === 429) {
retries = retries ? retries + 1 : 0

if (retries < this.maxRetries) {
console.log(`Hit rate limit. Retrying in ${retries} seconds.`)
await this.helpers.delay(1000 * retries)
return this.cacheResponse(url, params, retries)
.then(resolve)
.catch(reject)
}
reject(error.message)
}
reject(error.message)
}
})
}
Expand Down

0 comments on commit d41fe28

Please sign in to comment.