All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.lob.model.USZipLookup Maven / Gradle / Ivy

package com.lob.model;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.lob.exception.APIException;
import com.lob.exception.AuthenticationException;
import com.lob.exception.InvalidRequestException;
import com.lob.exception.RateLimitException;
import com.lob.net.APIResource;
import com.lob.net.LobResponse;
import com.lob.net.RequestOptions;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class USZipLookup extends APIResource {

    public static final String RESOURCE = "us_zip_lookups";

    public static class City {

        @JsonProperty private final String city;
        @JsonProperty private final String state;
        @JsonProperty private final String county;
        @JsonProperty private final String countyFips;
        @JsonProperty private final boolean preferred;

        @JsonCreator
        public City(
                @JsonProperty("city") final String city,
                @JsonProperty("state") final String state,
                @JsonProperty("county") final String county,
                @JsonProperty("county_fips") final String countyFips,
                @JsonProperty("preferred") final boolean preferred) {
            this.city = city;
            this.state = state;
            this.county = county;
            this.countyFips = countyFips;
            this.preferred = preferred;
        }

        public String getCity() {
            return city;
        }

        public String getState() {
            return state;
        }

        public String getCounty() {
            return county;
        }

        public String getCountyFips() {
            return countyFips;
        }

        public boolean isPreferred() {
            return preferred;
        }

        @Override
        public String toString() {
            return "City{" +
                    "city='" + city + '\'' +
                    ", state='" + state + '\'' +
                    ", county='" + county + '\'' +
                    ", countyFips='" + countyFips + '\'' +
                    '}';
        }

    }

    @JsonProperty private final String id;
    @JsonProperty private final String zipCode;
    @JsonProperty private final String zipCodeType;
    @JsonProperty private final List cities;
    @JsonProperty private final String object;

    @JsonCreator
    public USZipLookup(
            @JsonProperty("id") final String id,
            @JsonProperty("zip_code") final String zipCode,
            @JsonProperty("zip_code_type") final String zipCodeType,
            @JsonProperty("cities") final List cities,
            @JsonProperty("object") final String object) {
        this.id = id;
        this.zipCode = zipCode;
        this.zipCodeType = zipCodeType;
        this.cities = cities;
        this.object = object;
    }

    public String getId() {
        return id;
    }

    public String getZipCode() {
        return zipCode;
    }

    public String getZipCodeType() {
        return zipCodeType;
    }

    public List getCities() {
        return cities;
    }

    public String getObject() {
        return object;
    }

    @Override
    public String toString() {
        return "USZipLookup{" +
                "id='" + id + '\'' +
                ", zipCode='" + zipCode + '\'' +
                ", zipCodeType='" + zipCodeType + '\'' +
                ", cities=" + cities +
                ", object='" + object + '\'' +
                '}';
    }

    public static final class RequestBuilder {
        private Map params = new HashMap();

        public RequestBuilder() {
        }

        public RequestBuilder setZipCode(String zipCode) {
            params.put("zip_code", zipCode);
            return this;
        }

        public LobResponse lookup() throws APIException, IOException, AuthenticationException, InvalidRequestException, RateLimitException {
            return lookup(null);
        }

        public LobResponse lookup(RequestOptions options) throws APIException, IOException, AuthenticationException, InvalidRequestException, RateLimitException  {
            return request(RequestMethod.POST, RequestType.NORMAL, RESOURCE, params, USZipLookup.class, options);
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy