Skip to content

Commit

Permalink
re-enable event import and closing
Browse files Browse the repository at this point in the history
  • Loading branch information
Tschonti committed Mar 22, 2024
1 parent a0172a0 commit bbdaf3e
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 29 deletions.
26 changes: 12 additions & 14 deletions packages/functions/src/functions/events/closeRating.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { InvocationContext, Timer } from '@azure/functions'
import { getRedisClient } from '../../redis/redisClient'
import { app, InvocationContext, Timer } from '@azure/functions'
import Event from '../../typeorm/entities/Event'
import { getAppDataSource } from '../../typeorm/getConfig'

Expand All @@ -10,8 +9,8 @@ import { getAppDataSource } from '../../typeorm/getConfig'
export const closeRating = async (myTimer: Timer, context: InvocationContext): Promise<void> => {
try {
const pads = getAppDataSource(context)
const predis = getRedisClient(context)
const [ads, redisClient] = await Promise.all([pads, predis])
// const predis = getRedisClient(context)
const [ads /*redisClient*/] = await Promise.all([pads /*predis*/])

const eventRepo = ads.getRepository(Event)
const rateableEvents = await eventRepo.find({ where: { rateable: true } })
Expand All @@ -27,23 +26,22 @@ export const closeRating = async (myTimer: Timer, context: InvocationContext): P
}))

await eventRepo.save(toArchive)
const redisKeysToDelete = toArchive.map((e) => `event:${e.id}`)
let deleted = 0
if (redisKeysToDelete.length > 0) {
deleted = await redisClient.del(redisKeysToDelete)
}
if (toArchive.length !== deleted) {
context.warn(`${toArchive.length} events archived, but ${deleted} events deleted from cache!`)
}
// const redisKeysToDelete = toArchive.map((e) => `event:${e.id}`)
// let deleted = 0
// if (redisKeysToDelete.length > 0) {
// deleted = await redisClient.del(redisKeysToDelete)
// }
// if (toArchive.length !== deleted) {
// context.warn(`${toArchive.length} events archived, but ${deleted} events deleted from cache!`)
// }
context.log(`Closed the rating session for ${toArchive.length} event(s)`)
} catch (error) {
context.log(error)
}
}

/* Disabling this function until the end of the winter period, so the testing events will stay rateable
app.timer('events-close-rating', {
schedule: '0 0 3 * * *', // 3 AM every day
handler: closeRating,
runOnStartup: false,
})*/
})
31 changes: 16 additions & 15 deletions packages/functions/src/functions/events/import.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { InvocationContext, Timer } from '@azure/functions'
import { app, InvocationContext, Timer } from '@azure/functions'
import { getHighestRank, getRateableEvents, stageFilter } from '@pontozo/common'
import { getRedisClient } from '../../redis/redisClient'
import Club from '../../typeorm/entities/Club'
import Event from '../../typeorm/entities/Event'
import Season from '../../typeorm/entities/Season'
Expand All @@ -16,8 +15,8 @@ export const importEvents = async (myTimer: Timer, context: InvocationContext):
try {
const pevents = getRateableEvents(APIM_KEY, APIM_HOST)
const pads = getAppDataSource(context)
const predis = getRedisClient(context)
const [events, ads, redisClient] = await Promise.all([pevents, pads, predis])
// const predis = getRedisClient(context)
const [events, ads /*redisClient*/] = await Promise.all([pevents, pads /*predis*/])

const eventRepo = ads.getRepository(Event)
const stageRepo = ads.getRepository(Stage)
Expand Down Expand Up @@ -69,23 +68,25 @@ export const importEvents = async (myTimer: Timer, context: InvocationContext):
return event
})

const [_dbres, ...redisResults] = await Promise.all([
eventRepo.save(eventsToSave),
...eventsToSave.map((event) => redisClient.set(`event:${event.id}`, JSON.stringify(event), { EX: (7 * 24 + 15) * 60 * 60 })), // expires the next Monday at 3 AM
])
context.log(
`${eventsToSave.length} events created or updated in db, ${
redisResults.filter((r) => r === 'OK').length
} events created or updated in Redis cache`
)
await eventRepo.save(eventsToSave)
context.log(`${eventsToSave.length} events created or updated in db`)

// const [_dbres, ...redisResults] = await Promise.all([
// eventRepo.save(eventsToSave),
// ...eventsToSave.map((event) => redisClient.set(`event:${event.id}`, JSON.stringify(event), { EX: (7 * 24 + 15) * 60 * 60 })), // expires the next Monday at 3 AM
// ])
// context.log(
// `${eventsToSave.length} events created or updated in db, ${
// redisResults.filter((r) => r === 'OK').length
// } events created or updated in Redis cache`
// )
} catch (error) {
context.log(error)
}
}

/* Disabling this function until the end of the winter period, so only the testing events will be rateable
app.timer('events-import', {
schedule: '0 0 12 * * *', // 12 PM every day (noon)
handler: importEvents,
runOnStartup: false,
})*/
})

0 comments on commit bbdaf3e

Please sign in to comment.