diff --git a/src/components/index/indexConsole/commands/fetchCommands/Album/Create.js b/src/components/index/indexConsole/commands/fetchCommands/Album/Create.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/Album/Delete.js b/src/components/index/indexConsole/commands/fetchCommands/Album/Delete.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/Album/GetAll.js b/src/components/index/indexConsole/commands/fetchCommands/Album/GetAll.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/Album/GetOne.js b/src/components/index/indexConsole/commands/fetchCommands/Album/GetOne.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/Album/Update.js b/src/components/index/indexConsole/commands/fetchCommands/Album/Update.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/Logout.js b/src/components/index/indexConsole/commands/fetchCommands/Logout.js index 21cc10a..70470a3 100644 --- a/src/components/index/indexConsole/commands/fetchCommands/Logout.js +++ b/src/components/index/indexConsole/commands/fetchCommands/Logout.js @@ -1,13 +1,46 @@ -import React from 'react' +import React, { useEffect, useState } from 'react' import { connect } from 'react-redux' -import { UserService } from '../../../../../stores/user/duck/operations' -const Logout = () => { +import { deleteAuth } from '../../../../../stores/user/duck/operations' + +const Logout = ({ + user, + deleteAuth, + consoleHistory, setConsoleHistory, + componentVisible, setComponentVisible, + activateConsoleInput +}) => { + + const [message, setMessage] = useState('') + const [oneRequest, setOne] = useState(false) + + useEffect( + () => { + if ( componentVisible && oneRequest === false ) { + deleteAuth(user.token) + .then( () => { + setMessage( 'logout success' ) + }).catch( () => { + setMessage( 'logout failed' ) + }) + setOne( !oneRequest ) + } else { + activateConsoleInput() + } + if ( message !== '' ) { + setConsoleHistory( consoleHistory + message ) + setComponentVisible( false ) + setOne( false ) + setMessage('') + activateConsoleInput() + } + } + ) + return ( -
- -
+
) + } const mapStateToProps = state => ({ @@ -15,7 +48,7 @@ const mapStateToProps = state => ({ }) const mapDispatchToProps = dispatch => ({ - UserService: user => dispatch( UserService(user) ) + deleteAuth: (token) => dispatch( deleteAuth( token ) ) }) -export default connect(mapStateToProps, mapDispatchToProps) (Logout) \ No newline at end of file +export default connect(mapStateToProps, mapDispatchToProps)(Logout) \ No newline at end of file diff --git a/src/components/index/indexConsole/commands/fetchCommands/Track/Create.js b/src/components/index/indexConsole/commands/fetchCommands/Track/Create.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/Track/Delete.js b/src/components/index/indexConsole/commands/fetchCommands/Track/Delete.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/Track/GetAll.js b/src/components/index/indexConsole/commands/fetchCommands/Track/GetAll.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/Track/GetByAlbum.js b/src/components/index/indexConsole/commands/fetchCommands/Track/GetByAlbum.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/Track/GetOne.js b/src/components/index/indexConsole/commands/fetchCommands/Track/GetOne.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/Track/Update.js b/src/components/index/indexConsole/commands/fetchCommands/Track/Update.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/User/Delete.js b/src/components/index/indexConsole/commands/fetchCommands/User/Delete.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/User/GetAll.js b/src/components/index/indexConsole/commands/fetchCommands/User/GetAll.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/User/GetOne.js b/src/components/index/indexConsole/commands/fetchCommands/User/GetOne.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/User/Register.js b/src/components/index/indexConsole/commands/fetchCommands/User/Register.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/commands/fetchCommands/User/Update.js b/src/components/index/indexConsole/commands/fetchCommands/User/Update.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/index/indexConsole/indexConsole.js b/src/components/index/indexConsole/indexConsole.js index 5c54832..d018525 100644 --- a/src/components/index/indexConsole/indexConsole.js +++ b/src/components/index/indexConsole/indexConsole.js @@ -2,18 +2,23 @@ import React, { useEffect, useState } from 'react' import { connect } from 'react-redux' import commands from './commands/commands' -import Login from './commands/fetchCommands/Login' +import Login from './commands/fetchCommands/Login' import Logout from './commands/fetchCommands/Logout' import '../../../styles/general.scss' +import { deleteAuth } from '../../../stores/user/duck/operations' -const IndexConsole = ({ user }) => { +const IndexConsole = ({ + user, + deleteAuth +}) => { const [consoleHistory, setConsoleHistory] = useState('') - const [loginCommand, setVisibleLoginForm] = useState(false) - const [logoutCommand, setVisibleLogoutForm] = useState(false) + const [login, setLogin] = useState(false) + const [logout, setLogout] = useState(false) + const [register, setRegister] = useState(false) const consoleInput = React.createRef() @@ -48,7 +53,7 @@ const IndexConsole = ({ user }) => { setConsoleHistory( consoleHistory + consoleUser + commands.helpUser() ) } else if ( inputValue === 'logout' ) { setConsoleHistory( consoleHistory + consoleUser ) - setVisibleLogoutForm( !logoutCommand ) + setLogout( !logout ) } else if ( inputValue === 'clean' ){ setConsoleHistory( '' ) } else { @@ -59,7 +64,9 @@ const IndexConsole = ({ user }) => { setConsoleHistory( consoleHistory + consoleUser + commands.help() ) } else if ( inputValue === 'login' ) { setConsoleHistory( consoleHistory + consoleUser ) - setVisibleLoginForm( !loginCommand ) + setLogin( !login ) + } else if ( inputValue === 'register' ) { + } else if ( inputValue === 'clean' ){ setConsoleHistory( '' ) } else { @@ -92,26 +99,29 @@ const IndexConsole = ({ user }) => { { consoleHistory }
-
+
-
- +
+
+ +
-
+ { consoleUser } ({ user: state.user }) -export default connect(mapStateToProps, )(IndexConsole) \ No newline at end of file +const mapDispatchToProps = dispatch => ({ + deleteAuth: (token) => dispatch( deleteAuth(token) ) +}) + +export default connect(mapStateToProps, mapDispatchToProps)(IndexConsole) \ No newline at end of file diff --git a/src/stores/user/duck/operations.js b/src/stores/user/duck/operations.js index 3fe947d..55d48bf 100644 --- a/src/stores/user/duck/operations.js +++ b/src/stores/user/duck/operations.js @@ -43,11 +43,17 @@ export const postAuth = (username, password) => async (dispatch) => { } export const deleteAuth = (token) => async (dispatch) => { - response = await AppService._delete( - endpoint + 'auth', - token - ) - dispatch(actions.logout()) + try { + response = await AppService._delete( + endpoint + 'auth', + token + ).then( () => { + dispatch(actions.logout()) + return { error: 'logout success'} + }) + } catch { + return { error: 'connection failed' } + } } // User CRUD