invite member to house

This commit is contained in:
2026-02-11 22:45:33 +07:00
parent 5ffdd7454a
commit ea31b61cac
27 changed files with 545 additions and 61 deletions

View File

@@ -11,6 +11,7 @@ import {
houseCreateBESchema,
houseEditBESchema,
houseListSchema,
invitationCreateBESchema,
} from './house.schema';
import { createAuditLog } from './repository';
@@ -252,3 +253,59 @@ export const deleteUserHouse = createServerFn({ method: 'POST' })
throw { message, code };
}
});
export const invitationMember = createServerFn({ method: 'POST' })
.middleware([authMiddleware])
.inputValidator(invitationCreateBESchema)
.handler(async ({ data, context: { user } }) => {
try {
const headers = getRequestHeaders();
const body = {
email: data.email,
role: data.role,
organizationId: data.houseId,
};
const result = await auth.api.createInvitation({
body,
headers,
});
if (result) {
await createAuditLog({
action: LOG_ACTION.CREATE,
tableName: DB_TABLE.INVITATION,
recordId: result.id,
oldValue: '',
newValue: JSON.stringify(body),
userId: user.id,
});
}
return result;
} catch (error) {
console.error(error);
const { message, code } = parseError(error);
throw { message, code };
}
});
export const cancelInvitation = createServerFn({ method: 'POST' })
.middleware([authMiddleware])
.inputValidator(baseHouse)
.handler(async ({ data }) => {
try {
const headers = getRequestHeaders();
const result = await auth.api.cancelInvitation({
body: {
invitationId: data.id, // required
},
headers,
});
return result;
} catch (error) {
console.error(error);
const { message, code } = parseError(error);
throw { message, code };
}
});