@demobook/server
Version:
## Setup
82 lines (68 loc) • 1.65 kB
text/typescript
import { Action } from 'redux';
import { GetOwnersResponse, GetReposResponse } from '../../types/apis/demos';
export type Actions =
| FetchOwners
| FetchOwnersSuccess
| FetchOwnersFailure
| FetchRepos
| FetchReposSuccess
| FetchReposFailure;
export interface FetchOwners extends Action {
type: 'FETCH_OWNERS';
}
export const fetchOwners = (): FetchOwners => ({
type: 'FETCH_OWNERS'
});
export interface FetchOwnersSuccess extends Action {
type: 'FETCH_OWNERS_SUCCESS';
payload: {
owners: GetOwnersResponse;
};
}
export const fetchOwnersSuccess = (owners: GetOwnersResponse): FetchOwnersSuccess => ({
type: 'FETCH_OWNERS_SUCCESS',
payload: {
owners
}
});
export interface FetchOwnersFailure extends Action {
type: 'FETCH_OWNERS_FAILURE';
}
export const fetchOwnersFailure = (): FetchOwnersFailure => ({
type: 'FETCH_OWNERS_FAILURE'
});
export interface FetchRepos extends Action {
type: 'FETCH_REPOS';
paylaod: {
owner: string;
};
}
export const fetchRepos = (owner: string): FetchRepos => ({
type: 'FETCH_REPOS',
paylaod: {
owner
}
});
export interface FetchReposSuccess extends Action {
type: 'FETCH_REPOS_SUCCESS';
payload: {
owner: GetReposResponse['owner'];
repos: GetReposResponse['repos'];
};
}
export const fetchReposSuccess = ({
owner,
repos
}: FetchReposSuccess['payload']): FetchReposSuccess => ({
type: 'FETCH_REPOS_SUCCESS',
payload: {
owner,
repos
}
});
export interface FetchReposFailure extends Action {
type: 'FETCH_REPOS_FAILURE';
}
export const fetchReposFailure = (): FetchReposFailure => ({
type: 'FETCH_REPOS_FAILURE'
});