Skip to content

Commit

Permalink
fix /migrations endpoint connection bug
Browse files Browse the repository at this point in the history
  • Loading branch information
pportella23 authored Apr 25, 2024
1 parent 0afe24b commit ed484a1
Showing 1 changed file with 37 additions and 26 deletions.
63 changes: 37 additions & 26 deletions pages/api/v1/migrations/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,48 @@ import { join } from "node:path";
import database from "infra/database.js";

export default async function migrations(request, response) {
const dbClient = await database.getNewClient();

const defaultMigrationOptions = {
dbClient: dbClient,
dryRun: true,
dir: join("infra", "migrations"),
direction: "up",
verbose: true,
migrationsTable: "pgmigrations",
};

if (request.method === "GET") {
const pendingMigrations = await migrationRunner(defaultMigrationOptions);
await dbClient.end();
return response.status(200).json(pendingMigrations);
const allowedMethod = ["GET", "POST"];
if (!allowedMethod.includes(request.method)) {
return response.status(405).json({
error: `Method "${request.method}" not allowed`,
});
}

if (request.method === "POST") {
const migratedMigrations = await migrationRunner({
...defaultMigrationOptions,
dryRun: false,
});
let dbClient;

await dbClient.end();
try {
dbClient = await database.getNewClient();

const defaultMigrationOptions = {
dbClient: dbClient,
dryRun: true,
dir: join("infra", "migrations"),
direction: "up",
verbose: true,
migrationsTable: "pgmigrations",
};

if (migratedMigrations.length > 0) {
return response.status(201).json(migratedMigrations);
if (request.method === "GET") {
const pendingMigrations = await migrationRunner(defaultMigrationOptions);
return response.status(200).json(pendingMigrations);
}

return response.status(200).json(migratedMigrations);
}
if (request.method === "POST") {
const migratedMigrations = await migrationRunner({
...defaultMigrationOptions,
dryRun: false,
});

if (migratedMigrations.length > 0) {
return response.status(201).json(migratedMigrations);
}

return response.status(405).end();
return response.status(200).json(migratedMigrations);
}
} catch (error) {
console.error(error);
throw error;
} finally {
await dbClient.end();
}
}

0 comments on commit ed484a1

Please sign in to comment.