Project

General

Profile

« Previous | Next » 

Revision 6297

Modify monitor() to accept new parameters for getOperationStatisics() (fromDate, toDate) instead of 'period'. Added getDateAsUTC() to parse incoming fromDate and toDate parameter strings.

View differences:

src/edu/ucsb/nceas/metacat/restservice/MNResourceHandler.java
35 35
import java.util.Date;
36 36
import java.util.Enumeration;
37 37
import java.util.Map;
38
import java.util.TimeZone;
38 39

  
39 40
import javax.servlet.ServletContext;
40 41
import javax.servlet.http.HttpServletRequest;
......
67 68
import org.dataone.service.types.NodeList;
68 69
import org.dataone.service.types.NodeReference;
69 70
import org.dataone.service.types.ObjectFormat;
71
import org.dataone.service.types.ObjectFormatIdentifier;
70 72
import org.dataone.service.types.ObjectList;
71 73
import org.dataone.service.types.Permission;
72 74
import org.dataone.service.types.Subject;
......
99 101
 * 		isAuthorized() - GET /d1/mn/isAuthorized/PID
100 102
 * 		setAccessPolicy() - PUT /d1/mn/accessRules/PID
101 103
 * 		
102
 * 	MNStorage
104
 * 	MNStorage - DONE
103 105
 * 		create() - POST /d1/mn/object/PID
104 106
 * 		update() - PUT /d1/mn/object/PID
105 107
 * 		delete() - DELETE /d1/mn/object/PID
......
119 121
    protected static final String RESOURCE_NODE = "node";
120 122
    protected static final String RESOURCE_ERROR = "error";
121 123

  
122

  
123 124
    /**
124 125
     * Initializes new instance by setting servlet context,request and response
125 126
     * */
......
332 333
     * @throws IOException
333 334
     * @throws JiBXException
334 335
     */
335
    private boolean monitor(String pathInfo) throws NotFound, ParseException, NotImplemented, ServiceFailure, NotAuthorized, InvalidRequest, InsufficientResources, UnsupportedType, IOException, JiBXException {
336
    private boolean monitor(String pathInfo) 
337
      throws NotFound, ParseException, NotImplemented, ServiceFailure, 
338
      NotAuthorized, InvalidRequest, InsufficientResources, UnsupportedType, 
339
      IOException, JiBXException {
336 340
    	logMetacat.debug("processing monitor request");
337 341
        
338 342
        logMetacat.debug("verb is GET");
......
369 373
            
370 374
        } else if (pathInfo.toLowerCase().equals("event")) {
371 375
            logMetacat.debug("processing event request");
372
            ObjectFormat format = null;
373
            Integer period = null;
376
            ObjectFormatIdentifier fmtid = null;
377
            String fromDateStr = null;
378
            Date fromDate = null;
379
            String toDateStr = null;
380
            Date toDate = null;
374 381
            String requestor = null;
375 382
            Subject subject = null;
376 383
            String eventName = null;
377 384
            Event event = null;
378 385

  
379
            if (params.containsKey("format")) {
380
                String f = params.get("format")[0];
381
                format = ObjectFormatCache.getInstance().getFormat(f);
386
            if (params.containsKey("formatId")) {
387
                String f = params.get("formatId")[0];
388
                fmtid = ObjectFormatCache.getInstance().getFormat(f).getFmtid();
382 389
            }
383
            if (params.containsKey("period")) {
384
                String t = params.get("period")[0];
385
                period = Integer.valueOf(t);
390
            
391
            if (params.containsKey("fromDate")) {
392
                fromDateStr = params.get("fromDate")[0];
393
                fromDate = getDateAsUTC(fromDateStr);
386 394
            }
395
            
396
            if (params.containsKey("toDate")) {
397
              toDateStr = params.get("toDate")[0];
398
              toDate = getDateAsUTC(toDateStr);
399
            }
400
            
387 401
            if (params.containsKey("requestor")) {
388 402
            	requestor = params.get("requestor")[0];
389 403
            	subject = new Subject();
390 404
            	subject.setValue(requestor);
391 405
            }
406
            
392 407
            if (params.containsKey("event")) {
393 408
            	eventName = params.get("event")[0];
394 409
                event = Event.valueOf(eventName);
395 410
            }
396 411
            
397
            MonitorList monitorList = MNodeService.getInstance().getOperationStatistics(session, period, subject, event, format);
412
            MonitorList monitorList = MNodeService.getInstance().getOperationStatistics(session, fromDate, toDate, subject, event, fmtid);
398 413
            
399 414
            OutputStream out = response.getOutputStream();
400 415
            response.setStatus(200);
......
409 424
        return false;
410 425
    }
411 426
    
412
    /**
427
    /*
428
     * Parse an ISO8601 date string, returning a Date in UTC time if the string
429
     * ends in 'Z'.
430
     * 
431
     * @param fromDateStr -  the date string to be parsed
432
     * @return date -  the date object represented by the string
433
     */
434
    private Date getDateAsUTC(String fromDateStr)
435
      throws ParseException {
436

  
437
    	Date date = null;
438
    	
439
    	try {
440
    		// try the expected date format
441
        // a date format for date string arguments
442
        DateFormat dateFormat = 
443
        	new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
444

  
445
	      date = dateFormat.parse(fromDateStr);
446
      
447
    	} catch (ParseException e) {
448
    		// try the date with the UTC indicator
449
        DateFormat utcDateFormat = 
450
        	new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
451
        utcDateFormat.setTimeZone(TimeZone.getTimeZone("GMT-0"));
452
        date = utcDateFormat.parse(fromDateStr);
453
        
454
      }
455
    	
456
    	return date;
457
    }
458

  
459
		/**
413 460
     * Calculate the checksum 
414 461
     * @throws NotImplemented
415 462
     * @throws JiBXException

Also available in: Unified diff