mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
* ✨ Implemented initial onboarding call prompt logic * ✨ Added onboarding call prompt feature environment variable * ✨ Implemented onboarding session signup modal * 📈 Added initial telemetry for the onboarding call prompt * ✔️ Fixing linter error in server.ts * 💄 Updating onboaring call prompt and modal wording and styling * ✨ Implemented initial version of fake doors feature * ✨ Added parameters to onboarding call prompt request * ✨ Finished implementing fake doors in settings * 🔨 Updating onboarding call prompt fetching logic (fetching before timeout starts) * 👌 Updating onboarding call prompt and fake door components based on the front-end review feedback * ✨ Updated fake doors so they support UI location specification. Added credentials UI fake doors. * ⚡ Added checkbox to the signup form, improved N8NCheckbox formatting to better handle overflow * 💄 Moving seignup checkbox label text to i18n file, updating checkbox component css to force text wrap * ✨ Update API calls to work with the new workflow request and response formats * 👌 Updating fake door front-end based on the review feedback * 👌 Updating onboarding call prompt and fake doors UI based in the product feedback * ✨ Updated onboarding call prompts front-end to work with new endpoints and added new telemetry events * 🐛 Fixing onboarding call prompts not appearing in first user sessions * ⚡️ add createdAt to PublicUser * 👌 Updating onboarding call prompts front-end to work with the latest back-end and addressing latest product review * ✨ Improving error handling when submitting user emails on signup * 💄 Updating info text on Logging feature page * 💄 Updating first onboarding call prompt timeout to 5 minutes * 💄 Fixing `N8nCheckbox` component font overflow Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com>
77 lines
3.8 KiB
TypeScript
77 lines
3.8 KiB
TypeScript
import { IInviteResponse, IOnboardingCallPromptResponse, IPersonalizationSurveyAnswersV2, IRestApiContext, IUserResponse } from '@/Interface';
|
|
import { IDataObject } from 'n8n-workflow';
|
|
import { get, makeRestApiRequest } from './helpers';
|
|
|
|
export function loginCurrentUser(context: IRestApiContext): Promise<IUserResponse | null> {
|
|
return makeRestApiRequest(context, 'GET', '/login');
|
|
}
|
|
|
|
export function getCurrentUser(context: IRestApiContext): Promise<IUserResponse | null> {
|
|
return makeRestApiRequest(context, 'GET', '/me');
|
|
}
|
|
|
|
export function login(context: IRestApiContext, params: {email: string, password: string}): Promise<IUserResponse> {
|
|
return makeRestApiRequest(context, 'POST', '/login', params);
|
|
}
|
|
|
|
export async function logout(context: IRestApiContext): Promise<void> {
|
|
await makeRestApiRequest(context, 'POST', '/logout');
|
|
}
|
|
|
|
export function setupOwner(context: IRestApiContext, params: { firstName: string; lastName: string; email: string; password: string;}): Promise<IUserResponse> {
|
|
return makeRestApiRequest(context, 'POST', '/owner', params as unknown as IDataObject);
|
|
}
|
|
|
|
export function skipOwnerSetup(context: IRestApiContext): Promise<void> {
|
|
return makeRestApiRequest(context, 'POST', '/owner/skip-setup');
|
|
}
|
|
|
|
export function validateSignupToken(context: IRestApiContext, params: {inviterId: string; inviteeId: string}): Promise<{inviter: {firstName: string, lastName: string}}> {
|
|
return makeRestApiRequest(context, 'GET', '/resolve-signup-token', params);
|
|
}
|
|
|
|
export function signup(context: IRestApiContext, params: {inviterId: string; inviteeId: string; firstName: string; lastName: string; password: string}): Promise<IUserResponse> {
|
|
const { inviteeId, ...props } = params;
|
|
return makeRestApiRequest(context, 'POST', `/users/${params.inviteeId}`, props as unknown as IDataObject);
|
|
}
|
|
|
|
export async function sendForgotPasswordEmail(context: IRestApiContext, params: {email: string}): Promise<void> {
|
|
await makeRestApiRequest(context, 'POST', '/forgot-password', params);
|
|
}
|
|
|
|
export async function validatePasswordToken(context: IRestApiContext, params: {token: string, userId: string}): Promise<void> {
|
|
await makeRestApiRequest(context, 'GET', '/resolve-password-token', params);
|
|
}
|
|
|
|
export async function changePassword(context: IRestApiContext, params: {token: string, password: string, userId: string}): Promise<void> {
|
|
await makeRestApiRequest(context, 'POST', '/change-password', params);
|
|
}
|
|
|
|
export function updateCurrentUser(context: IRestApiContext, params: {id: string, firstName: string, lastName: string, email: string}): Promise<IUserResponse> {
|
|
return makeRestApiRequest(context, 'PATCH', `/me`, params as unknown as IDataObject);
|
|
}
|
|
|
|
export function updateCurrentUserPassword(context: IRestApiContext, params: {newPassword: string, currentPassword: string}): Promise<void> {
|
|
return makeRestApiRequest(context, 'PATCH', `/me/password`, params);
|
|
}
|
|
|
|
export async function deleteUser(context: IRestApiContext, {id, transferId}: {id: string, transferId?: string}): Promise<void> {
|
|
await makeRestApiRequest(context, 'DELETE', `/users/${id}`, transferId ? { transferId } : {});
|
|
}
|
|
|
|
export function getUsers(context: IRestApiContext): Promise<IUserResponse[]> {
|
|
return makeRestApiRequest(context, 'GET', '/users');
|
|
}
|
|
|
|
export function inviteUsers(context: IRestApiContext, params: Array<{email: string}>): Promise<IInviteResponse[]> {
|
|
return makeRestApiRequest(context, 'POST', '/users', params as unknown as IDataObject);
|
|
}
|
|
|
|
export async function reinvite(context: IRestApiContext, {id}: {id: string}): Promise<void> {
|
|
await makeRestApiRequest(context, 'POST', `/users/${id}/reinvite`);
|
|
}
|
|
|
|
export async function submitPersonalizationSurvey(context: IRestApiContext, params: IPersonalizationSurveyAnswersV2): Promise<void> {
|
|
await makeRestApiRequest(context, 'POST', '/me/survey', params as unknown as IDataObject);
|
|
}
|