001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.plugins.streetside.oauth; 003 004 005import java.io.IOException; 006import java.util.HashMap; 007import java.util.Map; 008 009import org.openstreetmap.josm.plugins.streetside.utils.StreetsideProperties; 010import org.openstreetmap.josm.plugins.streetside.utils.StreetsideURL; 011import org.openstreetmap.josm.tools.Logging; 012 013/** 014* Represents the current logged in user and stores its data. 015* 016* @author nokutu 017* 018*/ 019public final class StreetsideUser { 020 021private static String username; 022private static String imagesPolicy; 023private static String imagesHash; 024/** If the stored token is valid or not. */ 025private static boolean isTokenValid = true; 026 027private StreetsideUser() { 028 // Private constructor to avoid instantiation 029} 030 031/** 032* @return The username of the logged in user. 033*/ 034public static synchronized String getUsername() { 035 //if (!isTokenValid) { 036 return null; 037 //} 038 /*if (username == null) { 039 try { 040 username = OAuthUtils 041 .getWithHeader(StreetsideURL.APIv3.userURL()) 042 .getString("username"); 043 } catch (IOException e) { 044 Logging.log(Logging.LEVEL_WARN, "Invalid Streetside token, resetting field", e); 045 reset(); 046 } 047 } 048 return username;*/ 049} 050 051/** 052* @return A HashMap object containing the images_policy and images_hash 053* strings. 054*/ 055public static synchronized Map<String, String> getSecrets() { 056 //if (!isTokenValid) 057 return null; 058 /*Map<String, String> hash = new HashMap<>(); 059 try { 060 if (imagesHash == null) 061 imagesHash = OAuthUtils 062 .getWithHeader(StreetsideURL.uploadSecretsURL()) 063 .getString("images_hash", null); 064 hash.put("images_hash", imagesHash); 065 if (imagesPolicy == null) 066 imagesPolicy = OAuthUtils 067 .getWithHeader(StreetsideURL.uploadSecretsURL()) 068 .getString("images_policy"); 069 } catch (IOException e) { 070 Logging.log(Logging.LEVEL_WARN, "Invalid Streetside token, resetting field", e); 071 reset(); 072 } 073 hash.put("images_policy", imagesPolicy); 074 return hash;*/ 075} 076 077/** 078* Resets the MapillaryUser to null values. 079*/ 080public static synchronized void reset() { 081 username = null; 082 imagesPolicy = null; 083 imagesHash = null; 084 isTokenValid = false; 085 StreetsideProperties.ACCESS_TOKEN.put(StreetsideProperties.ACCESS_TOKEN.getDefaultValue()); 086} 087 088public static synchronized void setTokenValid(boolean value) { 089 isTokenValid = value; 090} 091}