From ac0a31511dbc80931c0f115c70151138175e4f1f Mon Sep 17 00:00:00 2001 From: ntr Date: Wed, 8 Feb 2023 23:05:23 +1100 Subject: [PATCH] fix errors for discogs and use env settings in mcrates compose --- api/src/discogs.ts | 6 +++--- api/src/events.ts | 8 ++++++-- client/src/style/styles.less | 4 ++++ docker-compose.MCRATES.yaml | 8 ++++---- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/api/src/discogs.ts b/api/src/discogs.ts index df2af97..f6836f1 100644 --- a/api/src/discogs.ts +++ b/api/src/discogs.ts @@ -42,7 +42,6 @@ export default function createDiscogs(log: Log, pg: Pg) { } function onError(error) { - console.error(error); if (error.response.status === 429) { return [new Error('rate limited, try again in 1 minute'), null]; } @@ -54,7 +53,6 @@ export default function createDiscogs(log: Log, pg: Pg) { async function wantListSync(username: string, user: User): Promise { const [err, res] = await api.get(`${apiBase}/users/${username}/wants`); - log.warn(err, res); if (err) throw err; const { wants, pagination } = res; @@ -75,7 +73,8 @@ export default function createDiscogs(log: Log, pg: Pg) { } async function release(id: DiscogsRelease): Promise { - const [error, data] = await api.get(`${apiBase}/releases/${id}`); + const [err, data] = await api.get(`${apiBase}/releases/${id}`); + if (err) throw err; return data; } @@ -121,6 +120,7 @@ export default function createDiscogs(log: Log, pg: Pg) { log.debug('fetching listing', id); const [err, discogsListing] = await api.get(`${apiBase}/marketplace/listings/${id}`); + if (err) throw err; log.debug(discogsListing); return pg.listingUpsert(discogsListing, want); } diff --git a/api/src/events.ts b/api/src/events.ts index d57621a..9efef16 100644 --- a/api/src/events.ts +++ b/api/src/events.ts @@ -27,7 +27,8 @@ export default function createEvents(log: Log, pg: Pg, discogs, offers) { log.error('event error', e); }); - async function populateListings(want: Want) { + const MAX_ATTEMPTS = 2; + async function populateListings(want: Want, attempts = 0) { try { const listings = await discogs.listings(want); await pg.wantSynced(want); @@ -36,7 +37,10 @@ export default function createEvents(log: Log, pg: Pg, discogs, offers) { if (e.message.includes('rate limited')) { log.warn('rate limited, trying again in 60s'); await setTimeout(60 * 1000); - return populateListings(want); + if (attempts > MAX_ATTEMPTS) { + log.error(wantDetails(want), 'failed to populate listings') + } + return populateListings(want, attempts++); } throw e; } diff --git a/client/src/style/styles.less b/client/src/style/styles.less index 6be48e8..a0826ce 100644 --- a/client/src/style/styles.less +++ b/client/src/style/styles.less @@ -51,6 +51,8 @@ body { .info { display: grid; + overflow: hidden; + grid-template-areas: "words swirl" "words contact"; @@ -65,10 +67,12 @@ body { .contact { grid-area: contact; text-align: center; + overflow: scroll; } .words { grid-area: words; + overflow: scroll; } .swirl { diff --git a/docker-compose.MCRATES.yaml b/docker-compose.MCRATES.yaml index 24003f0..d78f500 100644 --- a/docker-compose.MCRATES.yaml +++ b/docker-compose.MCRATES.yaml @@ -4,9 +4,9 @@ services: pg: image: postgres:latest environment: - POSTGRES_USER: 'mcrates' - POSTGRES_DB: 'mcrates' - POSTGRES_PASSWORD: 'digdeep' + POSTGRES_USER: '${POSTGRES_USER}' + POSTGRES_DB: '${POSTGRES_DB}' + POSTGRES_PASSWORD: '${POSTGRES_PASSWORD}' # allow prisma client to push changes from outside docker etc # ufw blocks this from being publicly accessible @@ -20,7 +20,7 @@ services: working_dir: /opt/mcrates/api entrypoint: npm start environment: - DATABASE_URL: 'postgresql://mcrates:digdeep@pg:5432/mcrates?schema=public' + DATABASE_URL: 'postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@pg:5432/${POSTGRES_DB}?schema=public' volumes: - "./api:/opt/mcrates/api"