rhythia-api 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/webhook_createUser.ts +47 -0
- package/package.json +13 -0
- package/types/supabase.ts +152 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { createClient } from "@supabase/supabase-js";
|
|
2
|
+
import { Database } from "../types/supabase";
|
|
3
|
+
|
|
4
|
+
export async function webhook_createUser(input: { type: string }) {
|
|
5
|
+
const request = await fetch(`https://rhythia.com/api/webhook_createUser`);
|
|
6
|
+
return request.json();
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const adminClient = createClient<Database>(
|
|
10
|
+
`https://pfkajngbllcbdzoylrvp.supabase.co`,
|
|
11
|
+
process.env.ADMIN_KEY!,
|
|
12
|
+
{
|
|
13
|
+
auth: {
|
|
14
|
+
autoRefreshToken: false,
|
|
15
|
+
persistSession: false,
|
|
16
|
+
},
|
|
17
|
+
}
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
export function GET(request: Request) {
|
|
21
|
+
const country = request.headers.get("x-vercel-ip-country");
|
|
22
|
+
return new Response(`You're visiting from beautiful ${country}`);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export async function POST(request: Request) {
|
|
26
|
+
const payload: any = await request.json();
|
|
27
|
+
|
|
28
|
+
if (payload.type !== "INSERT") return new Response(`not today`);
|
|
29
|
+
console.log("Inserting...");
|
|
30
|
+
const metadata = payload.record.raw_user_meta_data;
|
|
31
|
+
|
|
32
|
+
const data = await adminClient
|
|
33
|
+
.from("profiles")
|
|
34
|
+
.upsert({
|
|
35
|
+
uid: payload.record.id,
|
|
36
|
+
about_me: "",
|
|
37
|
+
avatar_url: metadata.avatar_url,
|
|
38
|
+
badges: ["Early Bird"],
|
|
39
|
+
username: metadata.full_name,
|
|
40
|
+
flag: "",
|
|
41
|
+
created_at: Date.now(),
|
|
42
|
+
})
|
|
43
|
+
.select();
|
|
44
|
+
|
|
45
|
+
console.log(data);
|
|
46
|
+
return new Response(`good one`);
|
|
47
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "rhythia-api",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.ts",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"sync": "npx supabase gen types typescript --project-id \"pfkajngbllcbdzoylrvp\" --schema public > types/supabase.ts"
|
|
7
|
+
},
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"@supabase/supabase-js": "^2.45.1",
|
|
11
|
+
"supabase": "^1.188.4"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
export type Json =
|
|
2
|
+
| string
|
|
3
|
+
| number
|
|
4
|
+
| boolean
|
|
5
|
+
| null
|
|
6
|
+
| { [key: string]: Json | undefined }
|
|
7
|
+
| Json[]
|
|
8
|
+
|
|
9
|
+
export type Database = {
|
|
10
|
+
public: {
|
|
11
|
+
Tables: {
|
|
12
|
+
profiles: {
|
|
13
|
+
Row: {
|
|
14
|
+
about_me: string | null
|
|
15
|
+
avatar_url: string | null
|
|
16
|
+
badges: Json | null
|
|
17
|
+
created_at: number | null
|
|
18
|
+
flag: string | null
|
|
19
|
+
id: number
|
|
20
|
+
uid: string | null
|
|
21
|
+
username: string | null
|
|
22
|
+
verified: boolean | null
|
|
23
|
+
}
|
|
24
|
+
Insert: {
|
|
25
|
+
about_me?: string | null
|
|
26
|
+
avatar_url?: string | null
|
|
27
|
+
badges?: Json | null
|
|
28
|
+
created_at?: number | null
|
|
29
|
+
flag?: string | null
|
|
30
|
+
id?: number
|
|
31
|
+
uid?: string | null
|
|
32
|
+
username?: string | null
|
|
33
|
+
verified?: boolean | null
|
|
34
|
+
}
|
|
35
|
+
Update: {
|
|
36
|
+
about_me?: string | null
|
|
37
|
+
avatar_url?: string | null
|
|
38
|
+
badges?: Json | null
|
|
39
|
+
created_at?: number | null
|
|
40
|
+
flag?: string | null
|
|
41
|
+
id?: number
|
|
42
|
+
uid?: string | null
|
|
43
|
+
username?: string | null
|
|
44
|
+
verified?: boolean | null
|
|
45
|
+
}
|
|
46
|
+
Relationships: [
|
|
47
|
+
{
|
|
48
|
+
foreignKeyName: "profiles_uid_fkey"
|
|
49
|
+
columns: ["uid"]
|
|
50
|
+
isOneToOne: true
|
|
51
|
+
referencedRelation: "users"
|
|
52
|
+
referencedColumns: ["id"]
|
|
53
|
+
},
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
Views: {
|
|
58
|
+
[_ in never]: never
|
|
59
|
+
}
|
|
60
|
+
Functions: {
|
|
61
|
+
[_ in never]: never
|
|
62
|
+
}
|
|
63
|
+
Enums: {
|
|
64
|
+
[_ in never]: never
|
|
65
|
+
}
|
|
66
|
+
CompositeTypes: {
|
|
67
|
+
[_ in never]: never
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
type PublicSchema = Database[Extract<keyof Database, "public">]
|
|
73
|
+
|
|
74
|
+
export type Tables<
|
|
75
|
+
PublicTableNameOrOptions extends
|
|
76
|
+
| keyof (PublicSchema["Tables"] & PublicSchema["Views"])
|
|
77
|
+
| { schema: keyof Database },
|
|
78
|
+
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
|
|
79
|
+
? keyof (Database[PublicTableNameOrOptions["schema"]]["Tables"] &
|
|
80
|
+
Database[PublicTableNameOrOptions["schema"]]["Views"])
|
|
81
|
+
: never = never,
|
|
82
|
+
> = PublicTableNameOrOptions extends { schema: keyof Database }
|
|
83
|
+
? (Database[PublicTableNameOrOptions["schema"]]["Tables"] &
|
|
84
|
+
Database[PublicTableNameOrOptions["schema"]]["Views"])[TableName] extends {
|
|
85
|
+
Row: infer R
|
|
86
|
+
}
|
|
87
|
+
? R
|
|
88
|
+
: never
|
|
89
|
+
: PublicTableNameOrOptions extends keyof (PublicSchema["Tables"] &
|
|
90
|
+
PublicSchema["Views"])
|
|
91
|
+
? (PublicSchema["Tables"] &
|
|
92
|
+
PublicSchema["Views"])[PublicTableNameOrOptions] extends {
|
|
93
|
+
Row: infer R
|
|
94
|
+
}
|
|
95
|
+
? R
|
|
96
|
+
: never
|
|
97
|
+
: never
|
|
98
|
+
|
|
99
|
+
export type TablesInsert<
|
|
100
|
+
PublicTableNameOrOptions extends
|
|
101
|
+
| keyof PublicSchema["Tables"]
|
|
102
|
+
| { schema: keyof Database },
|
|
103
|
+
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
|
|
104
|
+
? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
|
|
105
|
+
: never = never,
|
|
106
|
+
> = PublicTableNameOrOptions extends { schema: keyof Database }
|
|
107
|
+
? Database[PublicTableNameOrOptions["schema"]]["Tables"][TableName] extends {
|
|
108
|
+
Insert: infer I
|
|
109
|
+
}
|
|
110
|
+
? I
|
|
111
|
+
: never
|
|
112
|
+
: PublicTableNameOrOptions extends keyof PublicSchema["Tables"]
|
|
113
|
+
? PublicSchema["Tables"][PublicTableNameOrOptions] extends {
|
|
114
|
+
Insert: infer I
|
|
115
|
+
}
|
|
116
|
+
? I
|
|
117
|
+
: never
|
|
118
|
+
: never
|
|
119
|
+
|
|
120
|
+
export type TablesUpdate<
|
|
121
|
+
PublicTableNameOrOptions extends
|
|
122
|
+
| keyof PublicSchema["Tables"]
|
|
123
|
+
| { schema: keyof Database },
|
|
124
|
+
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
|
|
125
|
+
? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
|
|
126
|
+
: never = never,
|
|
127
|
+
> = PublicTableNameOrOptions extends { schema: keyof Database }
|
|
128
|
+
? Database[PublicTableNameOrOptions["schema"]]["Tables"][TableName] extends {
|
|
129
|
+
Update: infer U
|
|
130
|
+
}
|
|
131
|
+
? U
|
|
132
|
+
: never
|
|
133
|
+
: PublicTableNameOrOptions extends keyof PublicSchema["Tables"]
|
|
134
|
+
? PublicSchema["Tables"][PublicTableNameOrOptions] extends {
|
|
135
|
+
Update: infer U
|
|
136
|
+
}
|
|
137
|
+
? U
|
|
138
|
+
: never
|
|
139
|
+
: never
|
|
140
|
+
|
|
141
|
+
export type Enums<
|
|
142
|
+
PublicEnumNameOrOptions extends
|
|
143
|
+
| keyof PublicSchema["Enums"]
|
|
144
|
+
| { schema: keyof Database },
|
|
145
|
+
EnumName extends PublicEnumNameOrOptions extends { schema: keyof Database }
|
|
146
|
+
? keyof Database[PublicEnumNameOrOptions["schema"]]["Enums"]
|
|
147
|
+
: never = never,
|
|
148
|
+
> = PublicEnumNameOrOptions extends { schema: keyof Database }
|
|
149
|
+
? Database[PublicEnumNameOrOptions["schema"]]["Enums"][EnumName]
|
|
150
|
+
: PublicEnumNameOrOptions extends keyof PublicSchema["Enums"]
|
|
151
|
+
? PublicSchema["Enums"][PublicEnumNameOrOptions]
|
|
152
|
+
: never
|