From a5ba3dbba96285a08da99c00bd0613d076ad0346 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 6 Oct 2014 16:10:22 +0200 Subject: Support new API methods, changed DB scheme, updated .sql script --- .../org/openslx/imagemaster/server/ApiServer.java | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'src/main/java/org/openslx/imagemaster/server/ApiServer.java') diff --git a/src/main/java/org/openslx/imagemaster/server/ApiServer.java b/src/main/java/org/openslx/imagemaster/server/ApiServer.java index aaad0db..1323ec6 100644 --- a/src/main/java/org/openslx/imagemaster/server/ApiServer.java +++ b/src/main/java/org/openslx/imagemaster/server/ApiServer.java @@ -1,10 +1,12 @@ package org.openslx.imagemaster.server; import java.nio.ByteBuffer; +import java.util.ArrayList; import java.util.List; import org.openslx.imagemaster.db.DbImage; import org.openslx.imagemaster.db.DbSatellite; +import org.openslx.imagemaster.db.DbUser; import org.openslx.imagemaster.serverconnection.ImageProcessor; import org.openslx.imagemaster.serversession.ServerAuthenticator; import org.openslx.imagemaster.serversession.ServerSession; @@ -76,7 +78,7 @@ public class ApiServer public static UserInfo getUserFromToken( String token ) throws InvalidTokenException { - final Session session = SessionManager.getSession( token ); + final Session session = SessionManager.getSessionFromToken( token ); if ( session == null ) throw new InvalidTokenException(); return new UserInfo( session.getLogin(), session.getFirstName(), @@ -164,14 +166,19 @@ public class ApiServer public static boolean publishUser( String serverSessionId, UserInfo user ) { - // TODO Auto-generated method stub + // TODO return false; } - public static List findUser( String sessionId, String organizationId, String searchTerm ) + public static List findUser( String sessionId, String organizationId, String searchTerm ) throws AuthorizationException { - // TODO Auto-generated method stub - return null; + // Needs to be a logged in user + if ( SessionManager.getSessionFromSessionId( sessionId ) == null ) + throw new AuthorizationException( AuthorizationError.NOT_AUTHENTICATED, "Session ID not valid" ); + // Search string needs to be at least 2 characters (FIXME: quick and dirty ignoring LIKE chars) + if ( searchTerm == null || searchTerm.length() < 2 || searchTerm.replaceAll( "[%_]", "" ).length() < 2 ) + return new ArrayList<>( 0 ); + return DbUser.findUser( organizationId, searchTerm ); } public static List getOrganizations() @@ -179,8 +186,10 @@ public class ApiServer return DbSatellite.asOrganizationDataList(); } - public static List getPublicImages( String sessionId, int page ) + public static List getPublicImages( String sessionId, int page ) throws AuthorizationException { + if ( SessionManager.getSessionFromSessionId( sessionId ) == null ) + throw new AuthorizationException( AuthorizationError.NOT_AUTHENTICATED, "Session ID not valid" ); return DbImage.asImageDataList( page * 100, ( page + 1 ) * 100 ); } } -- cgit v1.2.3-55-g7522