mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-01-23 14:08:02 -05:00
feat: user create analytics
This commit is contained in:
@@ -3,6 +3,7 @@ import { revalidatePath } from "next/cache";
|
||||
import { redirect } from "next/navigation";
|
||||
import { createServerClient } from "@/lib/supabase/server";
|
||||
import { z } from "zod";
|
||||
import AutoGPTServerAPI from "@/lib/autogpt-server-api";
|
||||
|
||||
const loginFormSchema = z.object({
|
||||
email: z.string().email().min(2).max(64),
|
||||
@@ -32,6 +33,7 @@ export async function login(values: z.infer<typeof loginFormSchema>) {
|
||||
}
|
||||
|
||||
export async function signup(values: z.infer<typeof loginFormSchema>) {
|
||||
"use server";
|
||||
const supabase = createServerClient();
|
||||
|
||||
if (!supabase) {
|
||||
@@ -48,6 +50,16 @@ export async function signup(values: z.infer<typeof loginFormSchema>) {
|
||||
if (data.session) {
|
||||
await supabase.auth.setSession(data.session);
|
||||
}
|
||||
if (data.user) {
|
||||
const api = new AutoGPTServerAPI();
|
||||
|
||||
api.logCreateUser({
|
||||
email: values.email,
|
||||
user_id: data.user.id,
|
||||
name: values.email,
|
||||
username: values.email,
|
||||
});
|
||||
}
|
||||
|
||||
revalidatePath("/", "layout");
|
||||
redirect("/profile");
|
||||
|
||||
@@ -2,6 +2,8 @@ import React, { createContext, useContext, useEffect } from "react";
|
||||
import { usePathname, useSearchParams } from "next/navigation";
|
||||
import logPageViewAction from "./actions";
|
||||
|
||||
const EXCLUDED_PATHS = ["/login"];
|
||||
|
||||
const PageViewContext = createContext<null>(null);
|
||||
|
||||
export const PageViewProvider: React.FC<{ children: React.ReactNode }> = ({
|
||||
@@ -11,6 +13,10 @@ export const PageViewProvider: React.FC<{ children: React.ReactNode }> = ({
|
||||
const searchParams = useSearchParams();
|
||||
|
||||
useEffect(() => {
|
||||
if (EXCLUDED_PATHS.includes(pathname)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const logPageView = async () => {
|
||||
const pageViewData = {
|
||||
page: pathname,
|
||||
|
||||
@@ -9,6 +9,15 @@ DEFAULT_USER_ID = "3e53486c-cf57-477e-ba2a-cb02dc828e1a"
|
||||
DEFAULT_EMAIL = "default@example.com"
|
||||
|
||||
|
||||
class UserMetadata(BaseModel):
|
||||
name: str
|
||||
picture: str
|
||||
|
||||
class UserData(BaseModel):
|
||||
sub: str
|
||||
email: str
|
||||
user_metadata: UserMetadata
|
||||
|
||||
async def get_or_create_user(user_data: dict) -> User:
|
||||
|
||||
user_id = user_data.get("sub")
|
||||
|
||||
Reference in New Issue
Block a user