public SeekBasedResourceCollection query()

in src/main/java/com/microsoft/store/partnercenter/auditrecords/AuditRecordsCollection.java [44:133]


	public SeekBasedResourceCollection<AuditRecord> query(DateTime startDate, DateTime endDate, IQuery query)
	{
		if (query.getType() != QueryType.INDEXED && query.getType() != QueryType.SIMPLE)
		{
			throw new IllegalArgumentException("This type of query is not supported.");
		}

		Collection<KeyValuePair<String, String>> parameters = new ArrayList<KeyValuePair<String, String>>();
		DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYY-MM-DD");

		parameters.add
		(
			new KeyValuePair<String, String>
			(
				PartnerService.getInstance().getConfiguration().getApis().get("GetAuditRecordsRequest").getParameters().get("StartDate"),
				startDate.toString(formatter)
			) 
		);
		
		if (endDate != null)
		{
			parameters.add
			(
				new KeyValuePair<String, String>
				(
					PartnerService.getInstance().getConfiguration().getApis().get("GetAuditRecordsRequest").getParameters().get("EndDate"),
					endDate.toString(formatter)
				) 
			);
		}

		if (query.getType() == QueryType.INDEXED)
		{
			parameters.add
			(
				new KeyValuePair<String, String>
				(
					PartnerService.getInstance().getConfiguration().getApis().get("GetAuditRecordsRequest").getParameters().get("Size"), 
					Integer.toString(query.getPageSize())  
				)
			);
		}

		if (query.getFilter() != null)
		{
			// add the filter to the request if specified
			ObjectMapper mapper = new ObjectMapper();
			try
			{
				parameters.add
				(
					new KeyValuePair<String, String>
					(
						PartnerService.getInstance().getConfiguration().getApis().get("GetAuditRecordsRequest").getParameters().get("Filter"), 
						URLEncoder.encode
						(
							mapper.writeValueAsString(query.getFilter()),
							"UTF-8" 
						)
					)
				);
			}
			catch(JsonProcessingException e)
			{
				throw new PartnerException("", null, PartnerErrorCategory.REQUEST_PARSING, e);
			}
			catch (UnsupportedEncodingException e)
			{
				throw new PartnerException("", null, PartnerErrorCategory.REQUEST_PARSING, e);
			}
		}

		if (query.getToken() != null)
		{
			parameters.add
			(
				new KeyValuePair<String, String>
				(
					PartnerService.getInstance().getConfiguration().getApis().get("GetAuditRecordsRequest").getAdditionalHeaders().get("ContinuationToken"),
					query.getToken().toString()
				)
			);
		}

		return this.getPartner().getServiceClient().get(
			this.getPartner(),
			new TypeReference<SeekBasedResourceCollection<AuditRecord>>(){}, 
			PartnerService.getInstance().getConfiguration().getApis().get("GetAuditRecordsRequest").getPath(),
			parameters);
	}