Feat/monorepo (#292)

* feat(create-turbo): apply official-starter transform

* refactor: move folder

* wip: monorepo

* feat: add builf

* refactor: add pr

* update

* add .env

* refactor: update build

* refactor: update build docker

* refactor: add progress plain

* refactor: remove node pty

* refactor: remove

* remove

* refactor: update

* refacotr: uopdate

* refactor: add remix app

* add env

* refactor: add pnpm start

* refactor: remove

* refactor: remove folders

* refactor: remove .dockerfile

* chore: update biome

* test

* choe: add husky

* remove .docker folder

* feat: add docs website

* refactor: add husky

* chore(version): bump version

* refactor: add new changes

* refactor: update circle path

* refactor: update

* refactor: update

* refactor: update dockerfile

* refactor: update dockerfile

* refactor: update command

* refactor: update

* refactor: update dockerfile

* refactor: add tsx

* refactor: update dockerfile

* refactor: add deps

* refactor: up[date

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: yuodate

* refactor: remove

* refactor: uncomment

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: updare

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: imprt

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: remove

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: change path

* refactor: update

* refactor: update

* refactor: upoadte

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: add

* refactor: update

* refactor: update

* refactor: add

* refactor: update

* refactor: remove

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: removed

* refactor: update

* refactor: update

* refactor: update

* refactor: add config

* refactor: update

* refactor: add

* refactor: update

* refactor: update

* refactor: remove

* refactor: update

* refactor: remove

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: add docs

* refactor: update

* refactor: add website

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: add ignore builds

* refactor: update

* refactor: update

* refactor: add

* refactor: update

* refactor: update

* refactor: remove needs

* refactor: update

* refactor: update

* refactor: add config

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: remove

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: add

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: upodate

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update package json

* refactor: add biome

* refactor: add sponsors

* refactor: update

* refactor: update

* refactor: remove

* refactor: update

* refactor: update

* refactor: update

* refactor: update scripts

* refactor: remove

* refactor: update

* refactor: remove

---------

Co-authored-by: Turbobot <turbobot@vercel.com>
This commit is contained in:
Mauricio Siu
2024-07-29 23:08:23 -06:00
committed by GitHub
parent 9eba4f8b84
commit 5280c861e8
942 changed files with 87366 additions and 6709 deletions

View File

@@ -0,0 +1,153 @@
import { createTRPCRouter, protectedProcedure } from "@/server/api/trpc";
import {
apiCreateBackup,
apiFindOneBackup,
apiRemoveBackup,
apiUpdateBackup,
} from "@/server/db/schema";
import { runMariadbBackup } from "@/server/utils/backups/mariadb";
import { runMongoBackup } from "@/server/utils/backups/mongo";
import { runMySqlBackup } from "@/server/utils/backups/mysql";
import { runPostgresBackup } from "@/server/utils/backups/postgres";
import {
removeScheduleBackup,
scheduleBackup,
} from "@/server/utils/backups/utils";
import { TRPCError } from "@trpc/server";
import {
createBackup,
findBackupById,
removeBackupById,
updateBackupById,
} from "../services/backup";
import { findMariadbByBackupId } from "../services/mariadb";
import { findMongoByBackupId } from "../services/mongo";
import { findMySqlByBackupId } from "../services/mysql";
import { findPostgresByBackupId } from "../services/postgres";
export const backupRouter = createTRPCRouter({
create: protectedProcedure
.input(apiCreateBackup)
.mutation(async ({ input }) => {
try {
const newBackup = await createBackup(input);
const backup = await findBackupById(newBackup.backupId);
if (backup.enabled) {
scheduleBackup(backup);
}
} catch (error) {
throw new TRPCError({
code: "BAD_REQUEST",
message: "Error to create the Backup",
cause: error,
});
}
}),
one: protectedProcedure.input(apiFindOneBackup).query(async ({ input }) => {
const backup = await findBackupById(input.backupId);
return backup;
}),
update: protectedProcedure
.input(apiUpdateBackup)
.mutation(async ({ input }) => {
try {
await updateBackupById(input.backupId, input);
const backup = await findBackupById(input.backupId);
if (backup.enabled) {
scheduleBackup(backup);
} else {
removeScheduleBackup(input.backupId);
}
} catch (error) {
throw new TRPCError({
code: "BAD_REQUEST",
message: "Error to update this Backup",
});
}
}),
remove: protectedProcedure
.input(apiRemoveBackup)
.mutation(async ({ input }) => {
try {
const value = await removeBackupById(input.backupId);
removeScheduleBackup(input.backupId);
return value;
} catch (error) {
throw new TRPCError({
code: "BAD_REQUEST",
message: "Error to delete this Backup",
cause: error,
});
}
}),
manualBackupPostgres: protectedProcedure
.input(apiFindOneBackup)
.mutation(async ({ input }) => {
try {
const backup = await findBackupById(input.backupId);
const postgres = await findPostgresByBackupId(backup.backupId);
await runPostgresBackup(postgres, backup);
return true;
} catch (error) {
console.log(error);
throw new TRPCError({
code: "BAD_REQUEST",
message: "Error to run manual postgres backup ",
cause: error,
});
}
}),
manualBackupMySql: protectedProcedure
.input(apiFindOneBackup)
.mutation(async ({ input }) => {
try {
const backup = await findBackupById(input.backupId);
const mysql = await findMySqlByBackupId(backup.backupId);
await runMySqlBackup(mysql, backup);
return true;
} catch (error) {
throw new TRPCError({
code: "BAD_REQUEST",
message: "Error to run manual mysql backup ",
cause: error,
});
}
}),
manualBackupMariadb: protectedProcedure
.input(apiFindOneBackup)
.mutation(async ({ input }) => {
try {
const backup = await findBackupById(input.backupId);
const mariadb = await findMariadbByBackupId(backup.backupId);
await runMariadbBackup(mariadb, backup);
return true;
} catch (error) {
throw new TRPCError({
code: "BAD_REQUEST",
message: "Error to run manual mariadb backup ",
cause: error,
});
}
}),
manualBackupMongo: protectedProcedure
.input(apiFindOneBackup)
.mutation(async ({ input }) => {
try {
const backup = await findBackupById(input.backupId);
const mongo = await findMongoByBackupId(backup.backupId);
await runMongoBackup(mongo, backup);
return true;
} catch (error) {
throw new TRPCError({
code: "BAD_REQUEST",
message: "Error to run manual mongo backup ",
cause: error,
});
}
}),
});