mirror of
https://github.com/ClaytonWWilson/Listify.git
synced 2026-03-10 10:45:04 +00:00
Store Profile Picture on AWS
Save the profile picture to AWS so that the user need not retrieve it every time.
This commit is contained in:
34
Lambdas/Lists/Picture/src/Picture.java
Normal file
34
Lambdas/Lists/Picture/src/Picture.java
Normal file
@@ -0,0 +1,34 @@
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class Picture {
|
||||
String base64EncodedImage;
|
||||
|
||||
public Picture(ResultSet rs) {
|
||||
try {
|
||||
this.base64EncodedImage = rs.getString("base64image");
|
||||
} catch (SQLException throwables) {
|
||||
throwables.printStackTrace();
|
||||
this.base64EncodedImage = null;
|
||||
}
|
||||
}
|
||||
|
||||
public Picture(String base64EncodedImage) {
|
||||
this.base64EncodedImage = base64EncodedImage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Picture{" +
|
||||
"base64EncodedImage='" + base64EncodedImage + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
public String getBase64EncodedImage() {
|
||||
return base64EncodedImage;
|
||||
}
|
||||
|
||||
public void setBase64EncodedImage(String base64EncodedImage) {
|
||||
this.base64EncodedImage = base64EncodedImage;
|
||||
}
|
||||
}
|
||||
12
Lambdas/Lists/Picture/src/PictureGET.java
Normal file
12
Lambdas/Lists/Picture/src/PictureGET.java
Normal file
@@ -0,0 +1,12 @@
|
||||
import com.amazonaws.services.lambda.runtime.Context;
|
||||
import com.amazonaws.services.lambda.runtime.RequestHandler;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class PictureGET implements RequestHandler<Map<String,Object>, Object> {
|
||||
|
||||
public Object handleRequest(Map<String, Object> inputMap, Context unfilled) {
|
||||
return BasicHandler.handleRequest(inputMap, unfilled, PictureGetter.class);
|
||||
}
|
||||
|
||||
}
|
||||
34
Lambdas/Lists/Picture/src/PictureGetter.java
Normal file
34
Lambdas/Lists/Picture/src/PictureGetter.java
Normal file
@@ -0,0 +1,34 @@
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class PictureGetter implements CallHandler {
|
||||
private final Connection connection;
|
||||
private final String cognitoID;
|
||||
|
||||
private final String GET_ITEM = "SELECT * FROM Pictures WHERE cognitoID = ?;";
|
||||
|
||||
public PictureGetter(Connection connection, String cognitoID) {
|
||||
this.connection = connection;
|
||||
this.cognitoID = cognitoID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object conductAction(Map<String, Object> bodyMap, HashMap<String, String> queryMap, String cognitoID) throws SQLException {
|
||||
PreparedStatement statement = connection.prepareStatement(GET_ITEM);
|
||||
if (!queryMap.get("id").toString().equals("profile")) {
|
||||
throw new IllegalArgumentException("Only profile pictures are currently supported.");
|
||||
}
|
||||
statement.setString(1, cognitoID);
|
||||
System.out.println(statement);
|
||||
ResultSet queryResults = statement.executeQuery();
|
||||
queryResults.first();
|
||||
System.out.println(queryResults);
|
||||
Picture retrievedPicture = new Picture(queryResults);
|
||||
// System.out.println(retrievedPicture);
|
||||
return retrievedPicture;
|
||||
}
|
||||
}
|
||||
11
Lambdas/Lists/Picture/src/PicturePUT.java
Normal file
11
Lambdas/Lists/Picture/src/PicturePUT.java
Normal file
@@ -0,0 +1,11 @@
|
||||
import com.amazonaws.services.lambda.runtime.Context;
|
||||
import com.amazonaws.services.lambda.runtime.RequestHandler;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class PicturePUT implements RequestHandler<Map<String,Object>, Object> {
|
||||
|
||||
public Object handleRequest(Map<String, Object> inputMap, Context unfilled) {
|
||||
return BasicHandler.handleRequest(inputMap, unfilled, PicturePutter.class);
|
||||
}
|
||||
}
|
||||
28
Lambdas/Lists/Picture/src/PicturePutter.java
Normal file
28
Lambdas/Lists/Picture/src/PicturePutter.java
Normal file
@@ -0,0 +1,28 @@
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class PicturePutter implements CallHandler {
|
||||
|
||||
private Connection connection;
|
||||
private String cognitoID;
|
||||
|
||||
public PicturePutter(Connection connection, String cognitoID) {
|
||||
this.connection = connection;
|
||||
this.cognitoID = cognitoID;
|
||||
}
|
||||
|
||||
final private String STORE_PICTURE_SQL = "REPLACE INTO Pictures(cognitoID, base64image) VALUES(?, ?);";
|
||||
|
||||
public Object conductAction(Map<String, Object> bodyMap, HashMap<String, String> queryString, String cognitoID) throws SQLException {
|
||||
PreparedStatement storePicture = connection.prepareStatement(STORE_PICTURE_SQL);
|
||||
storePicture.setString(1, cognitoID);
|
||||
storePicture.setString(2, bodyMap.get("base64EncodedImage").toString());
|
||||
System.out.println(storePicture);
|
||||
storePicture.executeUpdate();
|
||||
connection.commit();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user