11package net .discordjug .javabot .systems .staff_commands .forms .dao ;
22
3- import java .sql .Connection ;
43import java .sql .PreparedStatement ;
54import java .sql .ResultSet ;
65import java .sql .SQLException ;
1312
1413import org .springframework .dao .EmptyResultDataAccessException ;
1514import org .springframework .jdbc .core .JdbcTemplate ;
16- import org .springframework .jdbc .core .PreparedStatementCreator ;
1715import org .springframework .jdbc .core .RowMapper ;
1816import org .springframework .stereotype .Repository ;
1917
@@ -136,13 +134,13 @@ public List<FormData> getAllForms(boolean closed) {
136134 * @param form a form to get submissions for
137135 * @return a map of users and the number of their submissions
138136 */
139- public Map <FormUser , Integer > getAllSubmissions (FormData form ) {
137+ public Map <FormUser , Integer > getSubmissionsCountPerUser (FormData form ) {
140138 Objects .requireNonNull (form );
141139 List <FormUser > users = jdbcTemplate .query ("select * from `form_submissions` where `form_id` = ?" ,
142140 (rs , rowNum ) -> new FormUser (rs .getLong ("user_id" ), rs .getString ("user_name" )), form .getId ());
143141 Map <FormUser , Integer > map = new HashMap <>();
144142 for (FormUser user : users ) {
145- map .compute (user , ( t , u ) -> u == null ? 1 : u + 1 );
143+ map .merge (user , 1 , Integer :: sum );
146144 }
147145 return Collections .unmodifiableMap (map );
148146 }
@@ -151,7 +149,7 @@ public Map<FormUser, Integer> getAllSubmissions(FormData form) {
151149 * Get a form for given ID.
152150 *
153151 * @param formId form ID to query
154- * @return optional containing the form, or empty if the form was not found.
152+ * @return optional form
155153 */
156154 public Optional <FormData > getForm (long formId ) {
157155 try {
@@ -175,7 +173,7 @@ public int getTotalSubmissionsCount(FormData form) {
175173 }
176174
177175 /**
178- * Checks if an user already submitted the form.
176+ * Checks if a user already submitted the form.
179177 *
180178 * @param user user to check
181179 * @param form form to check on
@@ -199,32 +197,28 @@ public boolean hasSubmitted(User user, FormData form) {
199197 */
200198 public void insertForm (@ NonNull FormData data ) {
201199 Objects .requireNonNull (data );
202- jdbcTemplate .update (new PreparedStatementCreator () {
203-
204- @ Override
205- public PreparedStatement createPreparedStatement (Connection con ) throws SQLException {
206- PreparedStatement statement = con .prepareStatement (
207- "insert into `forms` (title, submit_message, submit_channel, message_id, message_channel, expiration, onetime) values (?, ?, ?, ?, ?, ?, ?)" );
208- statement .setString (1 , data .getTitle ());
209- statement .setString (2 , data .getSubmitMessage ());
210- statement .setLong (3 , data .getSubmitChannel ());
211- statement .setObject (4 , data .getMessageId ().orElse (null ));
212- statement .setObject (5 , data .getMessageChannel ().orElse (null ));
213- statement .setLong (6 , data .getExpiration ());
214- statement .setBoolean (7 , data .isOnetime ());
215- return statement ;
216- }
200+ jdbcTemplate .update (con -> {
201+ PreparedStatement statement = con .prepareStatement (
202+ "insert into `forms` (title, submit_message, submit_channel, message_id, message_channel, expiration, onetime) values (?, ?, ?, ?, ?, ?, ?)" );
203+ statement .setString (1 , data .getTitle ());
204+ statement .setString (2 , data .getSubmitMessage ());
205+ statement .setLong (3 , data .getSubmitChannel ());
206+ statement .setObject (4 , data .getMessageId ().orElse (null ));
207+ statement .setObject (5 , data .getMessageChannel ().orElse (null ));
208+ statement .setLong (6 , data .getExpiration ());
209+ statement .setBoolean (7 , data .isOnetime ());
210+ return statement ;
217211 });
218212 }
219213
220214 /**
221- * Log an user form submission in database.
215+ * Add a user form submission to the database.
222216 *
223217 * @param user user to log
224218 * @param form form to log on
225219 * @param message message containing details about this user's submission
226220 */
227- public void logSubmission (User user , FormData form , Message message ) {
221+ public void addSubmission (User user , FormData form , Message message ) {
228222 Objects .requireNonNull (user );
229223 Objects .requireNonNull (form );
230224 jdbcTemplate .update (con -> {
0 commit comments