Skip to content

Commit

Permalink
DDEX users poller (#8380)
Browse files Browse the repository at this point in the history
  • Loading branch information
michellebrier committed May 8, 2024
1 parent a144f6a commit 913c80b
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 6 deletions.
4 changes: 2 additions & 2 deletions packages/ddex/processor/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ import { pollS3 } from './src/s3poller'
import {
deleteRelease,
publishValidPendingReleases,
sdkService,
} from './src/publishRelease'
import { sync } from './src/s3sync'
import { startServer } from './src/server'
import { sleep } from './src/util'
import { releaseRepo } from './src/db'
import { createSdkService } from './src/sdk'

program
.name('ddexer')
Expand Down Expand Up @@ -45,7 +45,7 @@ program
.action(async (id) => {
// find release and delete it
const release = releaseRepo.get(id)
const sdk = (await sdkService).getSdk()
const sdk = (await createSdkService()).getSdk()
await deleteRelease(sdk, release!)
})

Expand Down
4 changes: 1 addition & 3 deletions packages/ddex/processor/src/publishRelease.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,13 @@ import { DDEXContributor, DDEXRelease, DDEXResource } from './parseDelivery'
import { readAssetWithCaching } from './s3poller'
import { createSdkService } from './sdk'

export const sdkService = createSdkService()

export async function publishValidPendingReleases(opts?: {
republish: boolean
}) {
const rows = releaseRepo.all({ pendingPublish: true })
if (!rows.length) return

const sdk = (await sdkService).getSdk()
const sdk = (await createSdkService()).getSdk()

for (const row of rows) {
const parsed = row._parsed!
Expand Down
5 changes: 4 additions & 1 deletion packages/ddex/processor/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {
import { prepareAlbumMetadata, prepareTrackMetadatas } from './publishRelease'
import { readAssetWithCaching } from './s3poller'
import { parseBool } from './util'
import { startUsersPoller } from './usersPoller'

const { NODE_ENV, DDEX_KEY, DDEX_URL, COOKIE_SECRET } = process.env
const COOKIE_NAME = 'audiusUser'
Expand All @@ -43,7 +44,7 @@ app.get('/', async (c) => {
: ''}
${me
? html`
<h4>Welcome back ${me.name}</h4>
<h4>Welcome back @${me.handle}</h4>
<a href="/auth/logout" role="button">log out</a>
`
: html` <a role="button" href="/auth">login</a> `}
Expand Down Expand Up @@ -547,4 +548,6 @@ export function startServer() {
fetch: app.fetch,
port,
})

startUsersPoller().catch(console.error)
}
29 changes: 29 additions & 0 deletions packages/ddex/processor/src/usersPoller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { userRepo } from './db'
import { createSdkService } from './sdk'

export async function startUsersPoller() {
const sdk = (await createSdkService()).getSdk()

// Periodic task to fetch user data and update names
setInterval(async () => {
try {
const users = userRepo.all()

for (const user of users) {
const { data: userResponse } = await sdk.users.getUser({ id: user.id })
if (!userResponse) {
throw new Error(`Error fetching user ${user.id} from sdk`)
}
if (userResponse.name !== user.name) {
userRepo.upsert({
...user,
name: userResponse.name
})
console.log(`Updated user ${user.id}'s name`)
}
}
} catch (error) {
console.error('Failed to update user names:', error)
}
}, 300000) // Runs every 5 min
}

0 comments on commit 913c80b

Please sign in to comment.