verdnatura-chat/app/actions/server.ts

91 lines
1.7 KiB
TypeScript

import { Action } from 'redux';
import { SERVER } from './actionsTypes';
interface ISelectServer extends Action {
server: string;
version?: string;
fetchVersion: boolean;
changeServer: boolean;
}
interface ISelectServerSuccess extends Action {
server: string;
version: string;
}
interface IServer extends Action {
server: string;
username: string | null;
fromServerHistory: boolean;
}
interface IServerInit extends Action {
previousServer: string;
}
interface IServerFailure extends Action {
err: any;
}
export type TActionServer = ISelectServer & ISelectServerSuccess & IServer & IServerInit & IServerFailure;
export function selectServerRequest(server: string, version?: string, fetchVersion = true, changeServer = false): ISelectServer {
return {
type: SERVER.SELECT_REQUEST,
server,
version,
fetchVersion,
changeServer
};
}
export function selectServerSuccess(server: string, version: string): ISelectServerSuccess {
return {
type: SERVER.SELECT_SUCCESS,
server,
version
};
}
export function selectServerFailure(): Action {
return {
type: SERVER.SELECT_FAILURE
};
}
export function serverRequest(server: string, username: string | null = null, fromServerHistory = false): IServer {
return {
type: SERVER.REQUEST,
server,
username,
fromServerHistory
};
}
export function serverSuccess(): Action {
return {
type: SERVER.SUCCESS
};
}
export function serverFailure(err: any): IServerFailure {
return {
type: SERVER.FAILURE,
err
};
}
export function serverInitAdd(previousServer: string): IServerInit {
return {
type: SERVER.INIT_ADD,
previousServer
};
}
export function serverFinishAdd(): Action {
return {
type: SERVER.FINISH_ADD
};
}