reduce readwise api timeout to 5 sec

This commit is contained in:
Hongbo Wu 2023-08-11 14:38:45 +08:00
parent b18018ab2e
commit 05e73ebc9c
4 changed files with 40 additions and 49 deletions

View file

@ -40,20 +40,19 @@ export function integrationsServiceRouter() {
action: req.params.action,
integrationName: req.params.integrationName,
})
const { message: msgStr, expired } = readPushSubscription(req)
if (!msgStr) {
res.status(400).send('Bad Request')
return
}
if (expired) {
logger.info('discarding expired message')
res.status(200).send('Expired')
return
}
try {
const { message: msgStr, expired } = readPushSubscription(req)
if (!msgStr) {
return res.status(400).send('Bad Request')
}
if (expired) {
logger.info('discarding expired message')
return res.status(200).send('Expired')
}
const data: Message = JSON.parse(msgStr)
const userId = data.userId
const type = data.type
@ -118,8 +117,7 @@ export function integrationsServiceRouter() {
integrationId: integration.id,
pageId: page.id,
})
res.status(400).send('Failed to sync')
return
return res.status(400).send('Failed to sync')
}
} else if (action === 'SYNC_ALL') {
// sync all pages of the user

View file

@ -88,31 +88,29 @@ export function newsletterServiceRouter() {
// eslint-disable-next-line @typescript-eslint/no-misused-promises
router.post('/create', async (req, res) => {
logger.info('create')
const { message, expired } = readPushSubscription(req)
if (!message) {
res.status(400).send('Bad Request')
return
}
if (expired) {
logger.info('discards expired message:', message)
res.status(200).send('Expired')
return
}
logger.info('create newsletter in the')
try {
const { message, expired } = readPushSubscription(req)
if (!message) {
return res.status(400).send('Bad Request')
}
if (expired) {
logger.info('discards expired message', { message })
return res.status(200).send('Expired')
}
const data = JSON.parse(message) as unknown
if (!isNewsletterMessage(data)) {
logger.info('invalid newsletter message', data)
logger.error('invalid newsletter message', { data })
return res.status(400).send('Bad Request')
}
// get user from newsletter email
const newsletterEmail = await getNewsletterEmail(data.email)
if (!newsletterEmail) {
logger.info('newsletter email not found', data.email)
logger.info(`newsletter email not found: ${data.email}`)
return res.status(200).send('Not Found')
}
@ -137,19 +135,14 @@ export function newsletterServiceRouter() {
newsletterEmail.user.id
)
if (existingSubscription?.status === SubscriptionStatus.Unsubscribed) {
logger.info('newsletter already unsubscribed:', data.author)
logger.info(`newsletter already unsubscribed: ${data.author}`)
return res.status(200).send('newsletter already unsubscribed')
}
// save newsletter instead
const result = await saveNewsletterEmail(data, newsletterEmail, saveCtx)
if (!result) {
logger.info(
'Error creating newsletter link from data',
data.email,
data.title,
data.author
)
logger.info('Error creating newsletter link from data', data)
return res.status(500).send('Error creating newsletter link')
}

View file

@ -13,18 +13,18 @@ export function uploadServiceRouter() {
const router = express.Router()
router.post('/:folder', async (req, res) => {
const { message: msgStr, expired } = readPushSubscription(req)
if (!msgStr) {
return res.status(400).send('Bad Request')
}
if (expired) {
logger.info('discarding expired message')
return res.status(200).send('Expired')
}
try {
const { message: msgStr, expired } = readPushSubscription(req)
if (!msgStr) {
return res.status(400).send('Bad Request')
}
if (expired) {
logger.info('discarding expired message')
return res.status(200).send('Expired')
}
const data: { userId: string; type: string } = JSON.parse(msgStr)
if (!data.userId || !data.type) {
logger.info('No userId or type found in message')

View file

@ -125,7 +125,7 @@ export class ReadwiseIntegration extends IntegrationService {
Authorization: `Token ${token}`,
ContentType: 'application/json',
},
timeout: 10000, // 10 seconds
timeout: 5000, // 5 seconds
}
)
return response.status === 200
@ -140,7 +140,7 @@ export class ReadwiseIntegration extends IntegrationService {
return this.syncWithReadwise(token, highlights, retryCount + 1)
}
logger.error(error.response)
logger.error(error.message)
} else {
logger.error(error)
}