Skip to content
This repository has been archived by the owner on May 11, 2021. It is now read-only.

Commit

Permalink
refactor: clean up api code
Browse files Browse the repository at this point in the history
  • Loading branch information
igorkamyshev committed May 11, 2020
1 parent 4ca8318 commit ba2a868
Show file tree
Hide file tree
Showing 21 changed files with 36 additions and 33 deletions.
2 changes: 1 addition & 1 deletion src/app/utility/api.sagas.ts → src/app/api/api.sagas.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import getConfig from 'next/config';
import { select } from 'redux-saga/effects';

import { StatisticsApi } from '&front/api/StatisticsApi';
import { StatisticsApi } from '&front/app/api/parts/StatisticsApi';
import { getTokenValue } from '&front/domain/user/selectors/getToken';

const { publicRuntimeConfig } = getConfig();
Expand Down
1 change: 1 addition & 0 deletions src/api/types.ts → src/app/api/api.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ export class Interval {

@Type(() => Date)
readonly end: Date;

constructor(start: Date, end: Date) {
this.start = start;
this.end = end;
Expand Down
6 changes: 5 additions & 1 deletion src/api/utils.ts → src/app/api/api.utils.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import { AxiosRequestConfig } from 'axios';
import { Transform } from 'class-transformer';
import { format } from 'date-fns';

import { Interval } from './types';
import { Interval } from './api.types';

export const TransformBigInt = () =>
Transform((value: string) => Number(value));

export const intervalForQuery = ({ start, end }: Interval) => {
const pattern = 'YYYY-MM-DD';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import { Grow } from '&front/app/statistics/grow.types';
import { PeriodAmount } from '&front/app/statistics/periods.types';
import { GroupBy } from '&shared/enum/GroupBy';

import { Interval } from './types';
import { addTokenToHttpConfig, intervalForQuery } from './utils';
import { Interval } from '../api.types';
import { addTokenToHttpConfig, intervalForQuery } from '../api.utils';

export class StatisticsApi {
private readonly http: AxiosInstance;
Expand Down
2 changes: 1 addition & 1 deletion src/app/statistics/categories.actions.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import actionCreatorFactory from 'typescript-fsa';

import { Interval } from '&front/api/types';
import { Interval } from '&front/app/api/api.types';
import { GroupBy } from '&shared/enum/GroupBy';

import { PeriodCategories } from './categories.types';
Expand Down
4 changes: 2 additions & 2 deletions src/app/statistics/categories.reducers.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { uniqBy } from 'lodash';
import { reducerWithInitialState } from 'typescript-fsa-reducers';

import { Interval } from '&front/api/types';
import { intervalIdentity } from '&front/api/utils';
import { Interval } from '&front/app/api/api.types';
import { intervalIdentity } from '&front/app/api/api.utils';
import { GroupBy } from '&shared/enum/GroupBy';

import { actions } from './categories.actions';
Expand Down
4 changes: 2 additions & 2 deletions src/app/statistics/categories.sagas.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { takeLatest, put, call, delay } from 'redux-saga/effects';

import { StatisticsApi } from '&front/api/StatisticsApi';
import { createStatisticsApi } from '&front/app/utility/api.sagas';
import { StatisticsApi } from '&front/app/api/parts/StatisticsApi';
import { createStatisticsApi } from '&front/app/api/api.sagas';
import { logError } from '&front/app/utility/errors.sagas';

import { actions } from './categories.actions';
Expand Down
4 changes: 2 additions & 2 deletions src/app/statistics/categories.selectors.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Interval } from '&front/api/types';
import { intervalIdentity } from '&front/api/utils';
import { Interval } from '&front/app/api/api.types';
import { intervalIdentity } from '&front/app/api/api.utils';
import { State } from '&front/domain/store/State';
import { GroupBy } from '&shared/enum/GroupBy';

Expand Down
6 changes: 4 additions & 2 deletions src/app/statistics/categories.types.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/* eslint-disable max-classes-per-file */
import { Type } from 'class-transformer';

import { Interval } from '&front/api/types';
import { Interval } from '&front/app/api/api.types';

import { TransformBigInt } from '../utility/api.utils';
import { TransformBigInt } from '../api/api.utils';

export class CategoryData {
@TransformBigInt()
Expand All @@ -20,8 +20,10 @@ export class CategoryData {
export class PeriodCategories {
@Type(() => CategoryData)
readonly expenses: CategoryData[];

@Type(() => CategoryData)
readonly earnings: CategoryData[];

@Type(() => Interval)
readonly period: Interval;

Expand Down
4 changes: 2 additions & 2 deletions src/app/statistics/grow.sagas.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { takeLatest, put, call, delay } from 'redux-saga/effects';

import { StatisticsApi } from '&front/api/StatisticsApi';
import { createStatisticsApi } from '&front/app/utility/api.sagas';
import { StatisticsApi } from '&front/app/api/parts/StatisticsApi';
import { createStatisticsApi } from '&front/app/api/api.sagas';
import { logError } from '&front/app/utility/errors.sagas';

import { actions } from './grow.actions';
Expand Down
2 changes: 1 addition & 1 deletion src/app/statistics/periods.actions.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import actionCreatorFactory from 'typescript-fsa';

import { GroupBy } from '&shared/enum/GroupBy';
import { Interval } from '&front/api/types';
import { Interval } from '&front/app/api/api.types';

import { PeriodAmount } from './periods.types';

Expand Down
4 changes: 2 additions & 2 deletions src/app/statistics/periods.reducers.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { uniqBy } from 'lodash';
import { reducerWithInitialState } from 'typescript-fsa-reducers';

import { Interval } from '&front/api/types';
import { Interval } from '&front/app/api/api.types';
import { intervalIdentity } from '&front/app/api/api.utils';
import { GroupBy } from '&shared/enum/GroupBy';

import { actions } from './periods.actions';
import { PeriodAmount } from './periods.types';
import { intervalIdentity } from '&front/api/utils';

type StateData = { [key in GroupBy]?: PeriodAmount[] };

Expand Down
4 changes: 2 additions & 2 deletions src/app/statistics/periods.sagas.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { takeLatest, put, call, delay } from 'redux-saga/effects';

import { StatisticsApi } from '&front/api/StatisticsApi';
import { createStatisticsApi } from '&front/app/utility/api.sagas';
import { StatisticsApi } from '&front/app/api/parts/StatisticsApi';
import { createStatisticsApi } from '&front/app/api/api.sagas';
import { logError } from '&front/app/utility/errors.sagas';

import { actions } from './periods.actions';
Expand Down
4 changes: 2 additions & 2 deletions src/app/statistics/periods.selectors.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { isWithinRange } from 'date-fns';

import { Interval } from '&front/api/types';
import { intervalIdentity } from '&front/api/utils';
import { Interval } from '&front/app/api/api.types';
import { intervalIdentity } from '&front/app/api/api.utils';
import { State } from '&front/domain/store/State';
import { GroupBy } from '&shared/enum/GroupBy';

Expand Down
4 changes: 2 additions & 2 deletions src/app/statistics/periods.types.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Interval } from '&front/api/types';
import { Type } from 'class-transformer';

import { TransformBigInt } from '../utility/api.utils';
import { Interval } from '../api/api.types';
import { TransformBigInt } from '../api/api.utils';

export class PeriodAmount {
@TransformBigInt()
Expand Down
4 changes: 0 additions & 4 deletions src/app/utility/api.utils.ts

This file was deleted.

2 changes: 1 addition & 1 deletion src/features/statistics/features/categories/Categories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import React, { useMemo, useEffect } from 'react';
import { useDispatch } from 'redux-react-hook';
import { Option } from 'tsoption';

import { Interval } from '&front/api/types';
import { Interval } from '&front/app/api/api.types';
import { actions } from '&front/app/statistics/categories.actions';
import {
selectCategories,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { useMappedState, useDispatch } from 'redux-react-hook';
import { Option } from 'tsoption';
import useMedia from 'use-media';

import { Interval } from '&front/api/types';
import { Interval } from '&front/app/api/api.types';
import { actions } from '&front/app/statistics/categories.actions';
import {
selectCategories,
Expand Down
2 changes: 1 addition & 1 deletion src/features/statistics/features/monthly/Monthly.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { useMappedState, useDispatch } from 'redux-react-hook';
import { Option } from 'tsoption';
import { useMedia } from 'use-media';

import { Interval } from '&front/api/types';
import { Interval } from '&front/app/api/api.types';
import { actions } from '&front/app/statistics/periods.actions';
import {
selectPeriods,
Expand Down
2 changes: 1 addition & 1 deletion src/features/statistics/features/sources/Sources.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import React, { useMemo, useEffect } from 'react';
import { useDispatch } from 'redux-react-hook';
import { Option } from 'tsoption';

import { Interval } from '&front/api/types';
import { Interval } from '&front/app/api/api.types';
import { actions } from '&front/app/statistics/categories.actions';
import {
selectCategories,
Expand Down
2 changes: 1 addition & 1 deletion src/features/statistics/features/yearly/Yearly.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { useMappedState, useDispatch } from 'redux-react-hook';
import { Option } from 'tsoption';
import { useMedia } from 'use-media';

import { Interval } from '&front/api/types';
import { Interval } from '&front/app/api/api.types';
import { actions } from '&front/app/statistics/periods.actions';
import {
selectPeriods,
Expand Down

0 comments on commit ba2a868

Please sign in to comment.