feat: add a header to use basic auth

This commit is contained in:
Pablo Lara
2024-09-26 16:01:16 +02:00
parent e67f4e5f29
commit 4b74a8a008
+52 -31
View File
@@ -6,6 +6,10 @@ import { redirect } from "next/navigation";
import { auth } from "@/auth.config";
import { parseStringify } from "@/lib";
// Credentials for basic auth
const username = process.env.API_USERNAME;
const password = process.env.API_PASSWORD;
export const getProviders = async ({
page = 1,
query = "",
@@ -35,6 +39,7 @@ export const getProviders = async ({
const providers = await fetch(url.toString(), {
headers: {
"X-Tenant-ID": `${tenantId}`,
Authorization: "Basic " + btoa(`${username}:${password}`),
},
});
const data = await providers.json();
@@ -59,6 +64,7 @@ export const getProvider = async (formData: FormData) => {
const providers = await fetch(url.toString(), {
headers: {
"X-Tenant-ID": `${tenantId}`,
Authorization: "Basic " + btoa(`${username}:${password}`),
},
});
const data = await providers.json();
@@ -86,6 +92,7 @@ export const updateProvider = async (formData: FormData) => {
method: "PATCH",
headers: {
"X-Tenant-ID": `${tenantId}`,
Authorization: "Basic " + btoa(`${username}:${password}`),
"Content-Type": "application/vnd.api+json",
},
body: JSON.stringify({
@@ -110,17 +117,24 @@ export const updateProvider = async (formData: FormData) => {
};
export const addProvider = async (formData: FormData) => {
console.log(formData);
const session = await auth();
const keyServer = process.env.API_BASE_URL;
const tenantId = session?.user.tenantId;
const provider = formData.get("provider");
const providerId = formData.get("id");
const providerId = formData.get("providerId");
const alias = formData.get("alias");
const url = new URL(`${keyServer}/providers`);
try {
const response = await fetch(`${keyServer}/providers`, {
const response = await fetch(url.toString(), {
method: "POST",
headers: {
"X-Tenant-ID": `${process.env.HEADER_TENANT_ID}`,
"X-Tenant-ID": `${tenantId}`,
Authorization: "Basic " + btoa(`${username}:${password}`),
"Content-Type": "application/vnd.api+json",
},
body: JSON.stringify({
@@ -128,7 +142,7 @@ export const addProvider = async (formData: FormData) => {
type: "Provider",
attributes: {
provider: provider,
provider_id: providerId,
uid: providerId,
alias: alias,
},
},
@@ -146,40 +160,20 @@ export const addProvider = async (formData: FormData) => {
};
export const checkConnectionProvider = async (formData: FormData) => {
const session = await auth();
const keyServer = process.env.API_BASE_URL;
const tenantId = session?.user.tenantId;
const providerId = formData.get("id");
try {
const response = await fetch(
`${keyServer}/providers/${providerId}/connection`,
{
method: "POST",
headers: {
"X-Tenant-ID": `${process.env.HEADER_TENANT_ID}`,
},
},
);
const data = await response.json();
revalidatePath("/providers");
return parseStringify(data);
} catch (error) {
return {
error: getErrorMessage(error),
};
}
};
export const deleteProvider = async (formData: FormData) => {
const keyServer = process.env.API_BASE_URL;
const providerId = formData.get("id");
const url = new URL(`${keyServer}/providers/${providerId}/connection`);
try {
const response = await fetch(`${keyServer}/providers/${providerId}`, {
method: "DELETE",
const response = await fetch(url.toString(), {
method: "POST",
headers: {
"X-Tenant-ID": `${process.env.HEADER_TENANT_ID}`,
"X-Tenant-ID": `${tenantId}`,
Authorization: "Basic " + btoa(`${username}:${password}`),
},
});
const data = await response.json();
@@ -191,6 +185,33 @@ export const deleteProvider = async (formData: FormData) => {
};
}
};
export const deleteProvider = async (formData: FormData) => {
const session = await auth();
const keyServer = process.env.API_BASE_URL;
const tenantId = session?.user.tenantId;
const providerId = formData.get("id");
const url = new URL(`${keyServer}/providers/${providerId}`);
try {
const response = await fetch(url.toString(), {
method: "DELETE",
headers: {
"X-Tenant-ID": `${tenantId}`,
Authorization: "Basic " + btoa(`${username}:${password}`),
},
});
const data = await response.json();
revalidatePath("/providers");
return parseStringify(data);
} catch (error) {
return {
error: getErrorMessage(error),
};
}
};
export const getErrorMessage = (error: unknown): string => {
let message: string;