Remove api keys from old world (#2548)

* Use apiKeyV2 for getApiKeys

* Use apiKeyV2 for createApiKey

* Use apiKeyV2 for getApiKey

* Use apiKeyV2 to deleteapikey

* Filter null revokedAt -> not working

* Use apiKeyV2 to regenerate

* Fix default values injected

* Remove useless stuff

* Fix type
This commit is contained in:
martmull
2023-11-16 18:14:04 +01:00
committed by GitHub
parent 31adb24ffd
commit e8a1d0d6d5
9 changed files with 179 additions and 76 deletions

View File

@ -1,10 +1,13 @@
import { useState } from 'react';
import { useNavigate } from 'react-router-dom';
import styled from '@emotion/styled';
import { useOptimisticEffect } from '@/apollo/optimistic-effect/hooks/useOptimisticEffect';
import { useFindManyObjectRecords } from '@/object-record/hooks/useFindManyObjectRecords';
import { objectSettingsWidth } from '@/settings/data-model/constants/objectSettings';
import { SettingsApiKeysFieldItemTableRow } from '@/settings/developers/components/SettingsApiKeysFieldItemTableRow';
import { getApiKeysOptimisticEffectDefinition } from '@/settings/developers/optimistic-effect-definitions/getApiKeysOptimisticEffectDefinition';
import { ApiFieldItem } from '@/settings/developers/types/ApiFieldItem';
import { formatExpirations } from '@/settings/developers/utils/format-expiration';
import { IconPlus, IconSettings } from '@/ui/display/icon';
import { H1Title } from '@/ui/display/typography/components/H1Title';
@ -14,7 +17,6 @@ import { SubMenuTopBarContainer } from '@/ui/layout/page/SubMenuTopBarContainer'
import { Table } from '@/ui/layout/table/components/Table';
import { TableHeader } from '@/ui/layout/table/components/TableHeader';
import { TableRow } from '@/ui/layout/table/components/TableRow';
import { useGetApiKeysQuery } from '~/generated/graphql';
const StyledContainer = styled.div`
height: fit-content;
@ -40,15 +42,26 @@ const StyledH1Title = styled(H1Title)`
export const SettingsDevelopersApiKeys = () => {
const navigate = useNavigate();
const { registerOptimisticEffect } = useOptimisticEffect('ApiKeyV2');
const apiKeysQuery = useGetApiKeysQuery({
onCompleted: () => {
const [apiKeys, setApiKeys] = useState<Array<ApiFieldItem>>([]);
useFindManyObjectRecords({
objectNamePlural: 'apiKeysV2',
/*filter: { revokedAt: { eq: null } },*/
onCompleted: (data) => {
setApiKeys(
formatExpirations(
data.edges.map((apiKey) => ({
id: apiKey.node.id,
name: apiKey.node.name,
expiresAt: apiKey.node.expiresAt,
})),
),
);
registerOptimisticEffect({
variables: {},
definition: getApiKeysOptimisticEffectDefinition,
});
},
});
const apiKeys = apiKeysQuery.data ? formatExpirations(apiKeysQuery.data) : [];
return (
<SubMenuTopBarContainer Icon={IconSettings} title="Settings">