mirror of
https://github.com/Unleash/unleash.git
synced 2024-11-01 19:07:38 +01:00
47152cf05b
* refactor: user creation screen cleanup * feat: deprecation notice for google sso * fix: docs openid typo * invite link bar * invite link page * fix prettier docs * regenerated openapi * hooks for invite page api * update openapi * feat: invite link update * feat: add public signup token soft-delete * public signup frontend feature flag * fix: new user api issues * feat: allow for creating new user from invite link * Feat/invite user public controller (#2106) * added PublicInviteController for public urls * added PublicInviteController for public urls * added PublicInviteController for public urls * added PublicInviteController for public urls * fix test * fix test * update openapi * refactor: password reset props * fix: public invite schema and validation Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com> * user invite frontend Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com> * invite link delete confirmation dialog * refactor: password reset action * fix: new user invite loading state * fix: run ts check with ci * revert openapi changes * fix: invite token api interface * fix: openapi schema index * fix: update test snapshots * update frontend snapshot * fix: prettier ci * fix: updates after review Co-authored-by: andreas-unleash <104830839+andreas-unleash@users.noreply.github.com> Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
import { useCallback } from 'react';
|
|
import useAPI from '../useApi/useApi';
|
|
import type {
|
|
ICreateInvitedUser,
|
|
IPublicSignupTokenCreate,
|
|
IPublicSignupTokenUpdate,
|
|
} from 'interfaces/publicSignupTokens';
|
|
|
|
const URI = 'api/admin/invite-link/tokens';
|
|
|
|
export const useInviteTokenApi = () => {
|
|
const { makeRequest, createRequest, errors, loading } = useAPI({
|
|
propagateErrors: true,
|
|
});
|
|
|
|
const createToken = useCallback(
|
|
async (request: IPublicSignupTokenCreate) => {
|
|
const req = createRequest(URI, {
|
|
method: 'POST',
|
|
body: JSON.stringify(request),
|
|
});
|
|
|
|
return await makeRequest(req.caller, req.id);
|
|
},
|
|
[createRequest, makeRequest]
|
|
);
|
|
|
|
const updateToken = useCallback(
|
|
async (tokenName: string, value: IPublicSignupTokenUpdate) => {
|
|
const req = createRequest(`${URI}/${tokenName}`, {
|
|
method: 'PUT',
|
|
body: JSON.stringify({
|
|
...(value.expiresAt ? { expiresAt: value.expiresAt } : {}),
|
|
...(value.enabled !== undefined
|
|
? { enabled: value.enabled }
|
|
: {}),
|
|
}),
|
|
});
|
|
|
|
return await makeRequest(req.caller, req.id);
|
|
},
|
|
[createRequest, makeRequest]
|
|
);
|
|
|
|
const addUser = useCallback(
|
|
async (secret: string, value: ICreateInvitedUser) => {
|
|
const req = createRequest(`/invite/${secret}/signup`, {
|
|
method: 'POST',
|
|
body: JSON.stringify(value),
|
|
});
|
|
|
|
return await makeRequest(req.caller, req.id);
|
|
},
|
|
[createRequest, makeRequest]
|
|
);
|
|
|
|
return {
|
|
createToken,
|
|
updateToken,
|
|
addUser,
|
|
errors,
|
|
loading,
|
|
};
|
|
};
|