🚚 (mv) change dir name
change lib directory in features to models
This commit is contained in:
13
features/auth/models/getOauthProviderList.ts
Normal file
13
features/auth/models/getOauthProviderList.ts
Normal file
@ -0,0 +1,13 @@
|
||||
"use server";
|
||||
import { api } from "@/shared/lib/ky/connector";
|
||||
|
||||
const getOauthProviderList = async () => {
|
||||
try {
|
||||
const res = await api.get(`auth/providers`);
|
||||
return res.json();
|
||||
} catch (error) {
|
||||
throw new Error("Failed to fetch OAuth providers", { cause: error });
|
||||
}
|
||||
};
|
||||
|
||||
export default getOauthProviderList;
|
||||
36
features/auth/models/requestOauthUrl.ts
Normal file
36
features/auth/models/requestOauthUrl.ts
Normal file
@ -0,0 +1,36 @@
|
||||
"use server";
|
||||
|
||||
import { api } from "@/shared/lib/ky/connector";
|
||||
import { redirect } from "next/navigation";
|
||||
import { ResponseRequestOauthUrl } from "../types/responseRequestOauthUrl";
|
||||
|
||||
const requestOauthUrl = async (providerData: {
|
||||
name: string;
|
||||
endpoint: string;
|
||||
}) => {
|
||||
// Check if requestEndpoint is provided, if not throw an error
|
||||
if (!providerData.endpoint)
|
||||
throw new Error("oAuth endpoint request not found");
|
||||
|
||||
// Define a variable to hold the OAuth data
|
||||
let oauthData: Promise<ResponseRequestOauthUrl>;
|
||||
|
||||
// Fetch OAuth data from the API
|
||||
try {
|
||||
const response = await api.get(providerData.endpoint, {
|
||||
searchParams: {
|
||||
callback: `${
|
||||
process.env.APP_DOMAIN
|
||||
}/auth/callback/${providerData.name.toLocaleLowerCase()}`,
|
||||
},
|
||||
});
|
||||
oauthData = response.json<ResponseRequestOauthUrl>();
|
||||
} catch (error) {
|
||||
throw new Error(JSON.stringify(error));
|
||||
}
|
||||
|
||||
// Redirect to the OAuth provider's authorization page
|
||||
redirect((await oauthData).data);
|
||||
};
|
||||
|
||||
export default requestOauthUrl;
|
||||
Reference in New Issue
Block a user