@@ -52,26 +52,21 @@ public class CRaterService {
5252 private Environment appProperties ;
5353
5454 /**
55- * Sends student work to the CRater server and receives the score as the response
56- *
57- * @param CRaterScoringRequest scoring request from client
58- * @return CRaterScoringResponse scoring response from CRater
55+ * Sends either student work (scoring request) or an item id (verification request) to
56+ * the CRater server
57+ * @param request the scoring or verification request from the client
58+ * @return scoring or verify response from CRater
59+ * @throws JSONException
5960 */
60- public String getScoringResponse (CRaterScoringRequest request ) throws JSONException {
61- request .setCRaterClientId (appProperties .getProperty ("cRater_client_id" ));
62- request .setCRaterUrl (appProperties .getProperty ("cRater_scoring_url" ));
63- return post (request );
64- }
61+ public String getCRaterResponse (CRaterRequest request ) throws JSONException {
62+ String prefix = request .forBerkeleyEndpoint () ? "berkeley_" : "" ;
63+
64+ String clientIdVariable = prefix + "cRater_client_id" ;
65+ String cRaterUrlVariable = prefix + request .getCRaterUrlVariableBase ();
66+
67+ request .setCRaterClientId (appProperties .getProperty (clientIdVariable ));
68+ request .setCRaterUrl (appProperties .getProperty (cRaterUrlVariable ));
6569
66- /**
67- * Sends item id verification request to the CRater server
68- *
69- * @param CRaterVerificationRequest request with item id to verify
70- * @return CRaterVerificationResponse verify response from CRater
71- */
72- public String getVerificationResponse (CRaterVerificationRequest request ) throws JSONException {
73- request .setCRaterClientId (appProperties .getProperty ("cRater_client_id" ));
74- request .setCRaterUrl (appProperties .getProperty ("cRater_verification_url" ));
7570 return post (request );
7671 }
7772
@@ -85,16 +80,18 @@ private String post(CRaterRequest request) throws JSONException {
8580 HttpClient client = HttpClientBuilder .create ().build ();
8681 HttpPost post = new HttpPost (request .getCRaterUrl ());
8782 try {
88- String authHeader = "Basic " + javax .xml .bind .DatatypeConverter .printBase64Binary (
89- ("extsyscrtr02dev:" + appProperties .getProperty ("cRater_password" )).getBytes ());
83+ String password = appProperties .getProperty (
84+ request .forBerkeleyEndpoint () ? "berkeley_cRater_password" : "cRater_password" );
85+ String authHeader = "Basic " + javax .xml .bind .DatatypeConverter
86+ .printBase64Binary (("extsyscrtr02dev:" + password ).getBytes ());
9087 post .setHeader (HttpHeaders .AUTHORIZATION , authHeader );
9188 post .setHeader (HttpHeaders .CONTENT_TYPE , "application/json;charset=utf-8" );
9289 post .setEntity (new StringEntity (request .generateBodyData (), ContentType .APPLICATION_JSON ));
9390 HttpResponse response = client .execute (post );
9491 if (response .getStatusLine ().getStatusCode () != HttpStatus .SC_OK ) {
9592 System .err .println ("Method failed: " + response .getStatusLine ());
9693 }
97- return IOUtils .toString (response .getEntity ().getContent ());
94+ return IOUtils .toString (response .getEntity ().getContent (), "UTF-8" );
9895 } catch (IOException e ) {
9996 System .err .println ("Fatal transport error: " + e .getMessage ());
10097 e .printStackTrace ();
0 commit comments