diff --git a/src/app/api/auth.js b/src/app/api/auth.js index 6ccb946..3568b69 100644 --- a/src/app/api/auth.js +++ b/src/app/api/auth.js @@ -51,6 +51,7 @@ async function userPersonalData() { baseURL: "http://wpd.brazilsouth.cloudapp.azure.com:8080/users", }); localClient.setHeader("Authorization", `Bearer ${authToken}`); + return localClient.get(`/me`); } @@ -58,13 +59,16 @@ async function userPersonalData() { async function userActivation(code) { const { username } = await authStorage.getUser(); const authToken = await authStorage.getToken() + console.log("TOKEN ACTIVATE: "+authToken); + console.log("USER NAME: " + username); const localClient = create({ baseURL: "http://wpd.brazilsouth.cloudapp.azure.com:8080/users", }); + localClient.setHeader("Authorization", `Bearer ${authToken}`); - return localClient.post(`/activate?activationkey=${code}&username=${username}`); + return localClient.post(`/activate?username=${username}&activationkey=0b7b37bb-0f6d-4c65-b1b4-d7cc816f52bd`); } export { login, signup, userPersonalData, userActivation }; diff --git a/src/app/screens/AccountScreen.js b/src/app/screens/AccountScreen.js index a5cb40f..28cfb63 100644 --- a/src/app/screens/AccountScreen.js +++ b/src/app/screens/AccountScreen.js @@ -9,7 +9,6 @@ import { MaterialCommunityIcons, FontAwesome } from "@expo/vector-icons"; import colors from "../config/colors"; import ConfirmationModal from "../components/ConfirmationModal"; - function UserHeader({ name, fone }) { return ( @@ -74,16 +73,32 @@ function ProfileItensList({ icon, IconProvider, title, onPress }) { function AccountScreen(props) { const { user, setUser } = useContext(AuthContext); - const [ showLog, setShowLog ] = useState(false); + const [showLog, setShowLog] = useState(false); + console.log(user); const logout = () => { setUser(null); authStorage.removeToken(); }; + const activationActions = () => { + if (user?.providerActivationKey) + props.navigation.navigate("ActivateInstitutionShowCode"); + else + props.navigation.navigate("ActivateInstitutionCode"); + }; + + const showActivation = () => { + if (user.role === "ROLE_CLIENT") + return !user.active + else + return true + } + const profileItems = [ { icon: "account", + show: true, IconProvider: MaterialCommunityIcons, title: "Cadastrar pluviômetro", onPress: () => { @@ -92,14 +107,16 @@ function AccountScreen(props) { }, { icon: "institution", + show: showActivation(), IconProvider: FontAwesome, title: "ATIVAR INSTITUIÇÃO", onPress: () => { - props.navigation.navigate("ActivateInstitutionCode"); + activationActions(); }, }, { icon: "information-outline", + show: true, IconProvider: MaterialCommunityIcons, title: "SOBRE O PROJETO", onPress: () => { @@ -108,10 +125,11 @@ function AccountScreen(props) { }, { icon: "logout", + show: true, IconProvider: MaterialCommunityIcons, title: "sair", onPress: () => { - setShowLog(true) + setShowLog(true); }, }, // { @@ -135,16 +153,19 @@ function AccountScreen(props) { - {profileItems.map(({ icon, IconProvider, title, onPress }) => ( - - - - ))} + {profileItems.map( + ({ icon, IconProvider, title, onPress, show }) => + show && ( + + + + ) + )} { + if (authContext.user?.providerActivationKey?.activationkey) + setActCode(authContext.user.providerActivationKey.activationkey); + else + userPersonalData().then((userData) => { + userData.ok && authContext.setUser(userData.data); + setActCode(userData.data.providerActivationKey.activationkey); + }); + }, []); -export default function ActivateInstitutionShowCode({ route }) { - const { code } = route.params; - const [actCode, setActCode] = useState("123456789012"); return ( @@ -52,9 +67,11 @@ export default function ActivateInstitutionShowCode({ route }) { marginTop: 24, fontWeight: "bold", textAlign: "center", - fontSize: dimensions.text.header + fontSize: dimensions.text.header, }} - >{actCode} + > + {actCode} + ); } diff --git a/src/app/screens/LoginScreen.js b/src/app/screens/LoginScreen.js index 2eb2362..255a5f4 100644 --- a/src/app/screens/LoginScreen.js +++ b/src/app/screens/LoginScreen.js @@ -80,6 +80,7 @@ export default function LoginScreen(props) { if (!result.ok) return setLoginFailed(true); await authStorage.setToken(result.data); + // console.log("TOKEN: " + result.data); setLoginFailed(false); const user = await userPersonalData();