import { Action } from "redux"; import { AccessGrant } from "../../util/auth"; import { IdToken } from "../../types/idToken"; export const LOGOUT = "LOGOUT_REQUEST"; export function logout() { return { type: LOGOUT }; }; export const LOGIN_REQUEST = "LOGIN_REQUEST"; export const LOGIN_SUCCESS = "LOGIN_SUCCESS"; export const LOGIN_FAILURE = "LOGIN_FAILURE"; export function login() { return { type: LOGIN_REQUEST }; }; export const HANDLE_OAUTH2_CALLBACK_REQUEST = "HANDLE_OAUTH2_CALLBACK_REQUEST"; export const HANDLE_OAUTH2_CALLBACK_SUCCESS = "HANDLE_OAUTH2_CALLBACK_SUCCESS"; export const HANDLE_OAUTH2_CALLBACK_FAILURE = "HANDLE_OAUTH2_CALLBACK_FAILURE"; export interface handleOAuth2CallbackAction extends Action { search: string } export function handleOAuth2Callback(search: string): handleOAuth2CallbackAction { return { type: HANDLE_OAUTH2_CALLBACK_REQUEST, search }; }; export interface handleOAuth2CallbackSuccessAction extends Action { grant: AccessGrant } export function handleOAuth2CallbackSuccess(grant: AccessGrant): handleOAuth2CallbackSuccessAction { return { type: HANDLE_OAUTH2_CALLBACK_SUCCESS, grant }; }; export const PARSE_ID_TOKEN_REQUEST = "PARSE_ID_TOKEN_REQUEST"; export const PARSE_ID_TOKEN_SUCCESS = "PARSE_ID_TOKEN_SUCCESS"; export const PARSE_ID_TOKEN_FAILURE = "PARSE_ID_TOKEN_FAILURE"; export interface parseIdTokenAction extends Action { rawIdToken: string }; export function parseIdToken(rawIdToken: string): parseIdTokenAction { return { type: PARSE_ID_TOKEN_REQUEST, rawIdToken }; }; export interface parseIdTokenSuccessAction extends Action { idToken: IdToken } export function parseIdTokenSuccess(idToken: IdToken): parseIdTokenSuccessAction { return { type: PARSE_ID_TOKEN_SUCCESS, idToken }; }; export const SET_CURRENT_USER = 'SET_CURRENT_USER'; export interface setCurrentUserAction extends Action { email: string } export function setCurrentUser(email: string): setCurrentUserAction { return { type: SET_CURRENT_USER, email }; }