refactor(#125): don't add the registry if the login already exists

This commit is contained in:
Mauricio Siu 2024-06-07 00:26:01 -06:00
parent 449a61e208
commit eea00d28cd
2 changed files with 23 additions and 16 deletions

View File

@ -62,7 +62,7 @@ export const registryRouter = createTRPCRouter({
return true; return true;
} catch (error) { } catch (error) {
console.log("Error Registry:", error); console.log("Error Registry:", error);
return error; return false;
} }
}), }),

View File

@ -9,13 +9,15 @@ import {
} from "@/server/utils/traefik/registry"; } from "@/server/utils/traefik/registry";
import { removeService } from "@/server/utils/docker/utils"; import { removeService } from "@/server/utils/docker/utils";
import { initializeRegistry } from "@/server/setup/registry-setup"; import { initializeRegistry } from "@/server/setup/registry-setup";
import { execAsync } from "@/server/utils/process/execAsync";
export type Registry = typeof registry.$inferSelect; export type Registry = typeof registry.$inferSelect;
export const createRegistry = async (input: typeof apiCreateRegistry._type) => { export const createRegistry = async (input: typeof apiCreateRegistry._type) => {
const admin = await findAdmin(); const admin = await findAdmin();
const newRegistry = await db return await db.transaction(async (tx) => {
const newRegistry = await tx
.insert(registry) .insert(registry)
.values({ .values({
...input, ...input,
@ -30,7 +32,12 @@ export const createRegistry = async (input: typeof apiCreateRegistry._type) => {
message: "Error input: Inserting registry", message: "Error input: Inserting registry",
}); });
} }
const loginCommand = `echo ${input.password} | docker login ${input.registryUrl} --username ${input.username} --password-stdin`;
await execAsync(loginCommand);
return newRegistry; return newRegistry;
});
}; };
export const removeRegistry = async (registryId: string) => { export const removeRegistry = async (registryId: string) => {