package com.jobhive.sakimonkey.data.request; import java.util.Date; import java.util.Set; import com.fasterxml.jackson.annotation.JsonFormat; import com.jobhive.sakimonkey.Defaults; import com.jobhive.sakimonkey.utils.Literal; /** * * @author Hussachai * */ public class MessageSearchParams extends ApiParam { /** * search terms to find matching messages * http://help.mandrill.com/entries/22211902 */ private String query; /** * start date */ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = Defaults.DATE_FORMAT, timezone = Defaults.TIME_ZONE) private Date dateFrom; /** * end date */ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = Defaults.DATE_FORMAT, timezone = Defaults.TIME_ZONE) private Date dateTo; /** * an array of tag names to narrow the search to, will return messages that * contain ANY of the tags */ private Set<String> tags; /** * an array of sender addresses to narrow the search to, will return * messages sent by ANY of the senders */ private Set<String> senders; /** * an array of API keys to narrow the search to, will return messages sent * by ANY of the keys */ private Set<String> apiKeys; /** * the maximum number of results to return, defaults to 100, 1000 is the * maximum */ private Integer limit; public String getQuery() { return query; } public MessageSearchParams setQuery(String query) { this.query = query; return this; } public Date getDateFrom() { return dateFrom; } public MessageSearchParams setDateFrom(Date dateFrom) { this.dateFrom = dateFrom; return this; } public Date getDateTo() { return dateTo; } public MessageSearchParams setDateTo(Date dateTo) { this.dateTo = dateTo; return this; } public Set<String> getTags() { return tags; } public MessageSearchParams setTags(Set<String> tags) { this.tags = tags; return this; } public MessageSearchParams setTags(String... tags) { this.tags = Literal.set(tags); return this; } public Set<String> getSenders() { return senders; } public MessageSearchParams setSenders(Set<String> senders) { this.senders = senders; return this; } public MessageSearchParams setSenders(String... senders) { this.senders = Literal.set(senders); return this; } public Set<String> getApiKeys() { return apiKeys; } public MessageSearchParams setApiKeys(Set<String> apiKeys) { this.apiKeys = apiKeys; return this; } public MessageSearchParams setApiKeys(String... apiKeys) { this.apiKeys = Literal.set(apiKeys); return this; } public Integer getLimit() { return limit; } public MessageSearchParams setLimit(Integer limit) { this.limit = limit; return this; } }