Define Shlink API contract

This commit is contained in:
Alejandro Celaya
2023-07-24 17:30:58 +02:00
parent 3fe48779be
commit 5f6dc186e3
42 changed files with 161 additions and 126 deletions

View File

@@ -1,7 +1,7 @@
import { useParams } from 'react-router-dom';
import type { ShlinkVisitsParams } from '../../api/types';
import type { ReportExporter } from '../../common/services/ReportExporter';
import { useGoBack } from '../../utils/helpers/hooks';
import type { ShlinkVisitsParams } from '../api-contract';
import { boundToMercureHub } from '../mercure/helpers/boundToMercureHub';
import { Topics } from '../mercure/helpers/Topics';
import type { DomainVisits as DomainVisitsState, LoadDomainVisits } from './reducers/domainVisits';

View File

@@ -1,11 +1,11 @@
import { createAction, createSlice } from '@reduxjs/toolkit';
import { flatten, prop, range, splitEvery } from 'ramda';
import type { ShlinkPaginator, ShlinkVisits, ShlinkVisitsParams } from '../../../api/types';
import { parseApiError } from '../../../api/utils';
import type { ShlinkState } from '../../../container/types';
import type { DateInterval } from '../../../utils/helpers/dateIntervals';
import { dateToMatchingInterval } from '../../../utils/helpers/dateIntervals';
import { createAsyncThunk } from '../../../utils/helpers/redux';
import type { ShlinkPaginator, ShlinkVisits, ShlinkVisitsParams } from '../../api-contract';
import { parseApiError } from '../../api-contract/utils';
import type { CreateVisit, Visit } from '../types';
import type { LoadVisits, VisitsInfo, VisitsLoaded } from './types';
import { createNewVisits } from './visitCreation';

View File

@@ -1,5 +1,5 @@
import type { ShlinkApiClient } from '../../../api/services/ShlinkApiClient';
import { isBetween } from '../../../utils/helpers/date';
import type { ShlinkApiClient } from '../../api-contract';
import { domainMatches } from '../../short-urls/helpers';
import { createVisitsAsyncThunk, createVisitsReducer, lastVisitLoaderForLoader } from './common';
import type { LoadVisits, VisitsInfo } from './types';

View File

@@ -1,5 +1,5 @@
import type { ShlinkApiClient } from '../../../api/services/ShlinkApiClient';
import { isBetween } from '../../../utils/helpers/date';
import type { ShlinkApiClient } from '../../api-contract';
import { createVisitsAsyncThunk, createVisitsReducer, lastVisitLoaderForLoader } from './common';
import type { VisitsInfo } from './types';

View File

@@ -1,6 +1,5 @@
import type { ShlinkApiClient } from '../../../api/services/ShlinkApiClient';
import type { ShlinkApiClientBuilder } from '../../../api/services/ShlinkApiClientBuilder';
import { isBetween } from '../../../utils/helpers/date';
import type { ShlinkApiClient } from '../../api-contract';
import type { OrphanVisit, OrphanVisitType } from '../types';
import { isOrphanVisit } from '../types/helpers';
import { createVisitsAsyncThunk, createVisitsReducer, lastVisitLoaderForLoader } from './common';

View File

@@ -1,5 +1,5 @@
import type { ShlinkApiClient } from '../../../api/services/ShlinkApiClient';
import { isBetween } from '../../../utils/helpers/date';
import type { ShlinkApiClient } from '../../api-contract';
import type { ShortUrlIdentifier } from '../../short-urls/data';
import { shortUrlMatches } from '../../short-urls/helpers';
import { createVisitsAsyncThunk, createVisitsReducer, lastVisitLoaderForLoader } from './common';

View File

@@ -1,5 +1,5 @@
import type { ShlinkApiClient } from '../../../api/services/ShlinkApiClient';
import { isBetween } from '../../../utils/helpers/date';
import type { ShlinkApiClient } from '../../api-contract';
import { createVisitsAsyncThunk, createVisitsReducer, lastVisitLoaderForLoader } from './common';
import type { LoadVisits, VisitsInfo } from './types';

View File

@@ -1,6 +1,5 @@
import type { ShlinkVisitsParams } from '../../../../api/types';
import type { ProblemDetailsError } from '../../../../api/types/errors';
import type { DateInterval } from '../../../../utils/helpers/dateIntervals';
import type { ProblemDetailsError, ShlinkVisitsParams } from '../../../api-contract';
import type { Visit } from '../../types';
export interface VisitsInfo {

View File

@@ -1,8 +1,7 @@
import type { PayloadAction } from '@reduxjs/toolkit';
import { createSlice } from '@reduxjs/toolkit';
import type { ShlinkApiClient } from '../../../api/services/ShlinkApiClient';
import type { ShlinkVisitsOverview } from '../../../api/types';
import { createAsyncThunk } from '../../../utils/helpers/redux';
import type { ShlinkApiClient, ShlinkVisitsOverview } from '../../api-contract';
import type { CreateVisit } from '../types';
import { groupNewVisitsByType } from '../types/helpers';
import { createNewVisits } from './visitCreation';