blob: a80db3a255faa2146a771c65f6e39f2ec3c7f6ef [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Step 1 -- Retrieve helper "beans" from the BSF framework
scriptaction = bsf.lookupBean( "scriptaction" )
manager = bsf.lookupBean( "manager" )
request = bsf.lookupBean( "request" )
logger = bsf.lookupBean( "logger" )
actionMap = bsf.lookupBean( "actionMap" )
// Step 2 -- Perform the action
logger.debug( "START updateinfo.js" )
// Retrieve things from the session and request
// NOTE: they are all of type java.lang.String
session = request.getSession( false )
uwid = session.getAttribute( "uwid" )
studentname = request.getParameter( "studentname" )
studentnumber = request.getParameter( "studentnumber" )
current_term = request.getParameter( "current_term" )
note = request.getParameter( "note" )
logger.debug( "Raw" )
logger.debug( " uwid [" + uwid + "]" )
logger.debug( " studentname [" + studentname + "]" )
logger.debug( " studentnumber [" + studentnumber + "]" )
logger.debug( " current_term [" + current_term + "]" )
logger.debug( " note [" + note + "]" )
// Cook things to make them more palatable to the database
note = ( note + "" ) // convert to a JS string
if (note == " ") { note="" }
if ( note.length > 255 )
{
note = note.substring( 0, 255 ); // take the leading 255 characters
}
logger.debug( "Cooked" )
logger.debug( " uwid [" + uwid + "]" )
logger.debug( " studentname [" + studentname + "]" )
logger.debug( " studentnumber [" + studentnumber + "]" )
logger.debug( " current_term [" + current_term + "]" )
logger.debug( " note [" + note + "]" )
// We have the choice of declaring things out here and making them explicitly
// null, or we have to use a different comparison in the "finally" block (defined?)
dbselector = null
datasource = null
conn = null
updateStatement = null
try
{
dbselector = manager.lookup( scriptaction.DB_CONNECTION )
datasource = dbselector.select( "ceabplanner" )
conn = datasource.getConnection()
updateStatement = conn.prepareStatement(
"UPDATE students SET name = ?, current_term = ?, uw_id = ? WHERE uw_userid = ? "
)
updateStatement.setString( 1, studentname );
updateStatement.setString( 2, current_term );
updateStatement.setString( 3, studentnumber );
updateStatement.setString( 4, uwid );
result = updateStatement.executeUpdate()
logger.debug( "Result #1 [" + result + "]" )
updateStatement = conn.prepareStatement(
"UPDATE studentnotes SET note = ? WHERE student = ( SELECT id FROM students WHERE uw_userid = ? )"
)
updateStatement.setString( 1, note );
updateStatement.setString( 2, uwid );
result = updateStatement.executeUpdate()
logger.debug( "Result #2 [" + result + "]" )
conn.commit()
actionMap.put( "scriptaction-continue", "" )
session.setAttribute( "results", "<SUCCESS>Information Saved at " + Date() + "</SUCCESS>" )
}
catch( ex )
{
logger.debug( "Caught Exception" )
logger.debug( " " + ex )
}
finally
{
if ( null != updateStatement ) { updateStatement.close() }
if ( null != conn ) { conn.close() }
if ( null != datasource ) { dbselector.release( datasource ) }
if ( null != dbselector ) { manager.release( dbselector ) }
}
logger.debug( "END updateinfo.js" )