Refine repositioning logic

This commit is contained in:
NMerz 2020-11-15 12:28:18 -05:00
parent ce8070cf43
commit 1fe04e038b
3 changed files with 23 additions and 9 deletions

View File

@ -15,8 +15,8 @@ public class ListRepositionActor implements CallHandler {
this.cognitoID = cognitoID;
}
final private String GET_PRIOR_POSITON = "SELECT uiPosition FROM ListSharee WHERE userID = ? AND listID = ?;";
final private String SET_NEW_POSITON = "UPDATE ListSharee SET uiPosition = ? WHERE userID = ? AND listID = ?;";
final private String GET_PRIOR_POSITION = "SELECT uiPosition FROM ListSharee WHERE userID = ? AND listID = ?;";
final private String SET_NEW_POSITION = "UPDATE ListSharee SET uiPosition = ? WHERE userID = ? AND listID = ?;";
final private String DECREMENT_HIGHER_POSITIONS = "UPDATE ListSharee SET uiPosition = uiPosition - 1 WHERE uiPosition > ? AND userID = ?;";
final private String INCREMENT_GEQ_POSITIONS = "UPDATE ListSharee SET uiPosition = uiPosition + 1 WHERE uiPosition >= ? AND userID = ?;";
@ -25,7 +25,7 @@ public class ListRepositionActor implements CallHandler {
Integer listID = (Integer) bodyMap.get("listID");
Integer newPosition = (Integer) bodyMap.get("newPosition");
PreparedStatement getPriorPosition = connection.prepareStatement(GET_PRIOR_POSITON);
PreparedStatement getPriorPosition = connection.prepareStatement(GET_PRIOR_POSITION);
getPriorPosition.setString(1, cognitoID);
getPriorPosition.setInt(2, listID);
ResultSet priorPositionRS = getPriorPosition.executeQuery();
@ -34,19 +34,29 @@ public class ListRepositionActor implements CallHandler {
}
Integer priorPosition = priorPositionRS.getInt("uiPosition");
PreparedStatement openNewPosition = connection.prepareStatement(INCREMENT_GEQ_POSITIONS);
if (newPosition.equals(priorPosition)) {
return null;
}
if (newPosition < priorPosition) {
openNewPosition.setInt(1, newPosition);
} else {
openNewPosition.setInt(1, newPosition + 1);
}
openNewPosition.setString(2, cognitoID);
System.out.println(openNewPosition);
openNewPosition.executeUpdate();
PreparedStatement fillPriorPosition = connection.prepareStatement(DECREMENT_HIGHER_POSITIONS);
fillPriorPosition.setInt(1, priorPosition);
fillPriorPosition.setString(2, cognitoID);
System.out.println(fillPriorPosition);
fillPriorPosition.executeUpdate();
PreparedStatement openNewPosition = connection.prepareStatement(INCREMENT_GEQ_POSITIONS);
openNewPosition.setInt(1, priorPosition);
openNewPosition.setString(2, cognitoID);
System.out.println(openNewPosition);
openNewPosition.executeUpdate();
PreparedStatement setNewPosition = connection.prepareStatement(SET_NEW_POSITON);
PreparedStatement setNewPosition = connection.prepareStatement(SET_NEW_POSITION);
setNewPosition.setInt(1, newPosition);
setNewPosition.setString(2, cognitoID);
setNewPosition.setInt(3, listID);

View File

@ -65,6 +65,7 @@ public class ListSharer implements CallHandler {
PreparedStatement uiPositionCheck = connection.prepareStatement(UI_POSITION_CHECK);
uiPositionCheck.setString(1, shareWithSub);
System.out.println(uiPositionCheck);
ResultSet uiPositionCheckRS = uiPositionCheck.executeQuery();
int nextPosition = 1;
if (uiPositionCheckRS.next()) {
@ -78,6 +79,7 @@ public class ListSharer implements CallHandler {
shareList.setInt(3, permissionLevel);
shareList.setInt(4, nextPosition);
shareList.setInt(5, permissionLevel);
System.out.println(shareList);
shareList.executeUpdate();
connection.commit();
return null;

View File

@ -17,6 +17,7 @@ import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
import com.amplifyframework.auth.AuthException;
import com.example.listify.data.List;
import com.example.listify.data.ListReposition;
import com.example.listify.data.SearchHistory;
import com.example.listify.ui.LoginPage;
import com.google.android.material.navigation.NavigationView;
@ -108,6 +109,7 @@ public class MainActivity extends AppCompatActivity implements CreateListDialogF
requestor.getObject("N/A", SearchHistory.class, historyReceiver, historyReceiver);
try {
System.out.println(historyReceiver.await());
requestor.putObject(new ListReposition(291, 1));
} catch (Exception e) {
e.printStackTrace();
}