@@ -85,14 +85,10 @@ export const createGroupInvitation = async ({
8585 . eq ( "member_id" , userData . id )
8686 . maybeSingle ( ) ;
8787 if ( membershipReq . data ?. admin !== true ) return null ;
88- /* eslint-disable @typescript-eslint/naming-convention */
8988 const { data, error } = await client . rpc ( "create_secret_token" , {
90- /* eslint-disable @typescript-eslint/naming-convention */
9189 v_payload : { groupId, type : "groupInvitation" , admin } ,
9290 expiry_interval : "60d" ,
93- /* eslint-enable @typescript-eslint/naming-convention */
9491 } ) ;
95- /* eslint-enable @typescript-eslint/naming-convention */
9692 if ( error || ! data ) return null ;
9793 return data ;
9894} ;
@@ -114,12 +110,27 @@ export const acceptGroupInvitation = async (
114110export const createGroup = async (
115111 client : DGSupabaseClient ,
116112 name : string ,
117- ) : Promise < string | null > => {
113+ ) : Promise < { groupId : string | null ; error : string | null } > => {
118114 const result = await client . functions . invoke < { group_id : string } > (
119115 "create-group" ,
120116 { body : { name } } ,
121117 ) ;
122- return result . data ?. group_id || null ;
118+ if ( result . error ) {
119+ let message =
120+ typeof result . error === "string"
121+ ? result . error
122+ : ( result . error as { message : string } ) . message ;
123+ try {
124+ const body = ( await (
125+ result . error as { context ?: Response }
126+ ) . context ?. json ( ) ) as { msg ?: string } | undefined ;
127+ if ( body ?. msg ) message = body . msg ;
128+ } catch {
129+ // ignore parse errors
130+ }
131+ return { groupId : null , error : message } ;
132+ }
133+ return { groupId : result . data ?. group_id ?? null , error : null } ;
123134} ;
124135
125136export const removeFromGroup = async ( {
0 commit comments