1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-11-01 19:07:38 +01:00
unleash.unleash/frontend/src/hooks/api/actions/useInviteTokenApi/useInviteTokenApi.ts
Tymoteusz Czech 47152cf05b
Feat/invite user (#2061)
* 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>
2022-09-30 13:01:32 +02:00

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,
};
};