com.nicohuysamen.fetchapp.RequestConstants.java Source code

Java tutorial

Introduction

Here is the source code for com.nicohuysamen.fetchapp.RequestConstants.java

Source

/*
* RequestConstants.java
*
* Copyright (c) 2013, Nicolaas Frederick Huysamen. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/

package com.nicohuysamen.fetchapp;

import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 *
 */
public class RequestConstants {

    private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");

    public static final String REQUEST_METHOD_GET = "GET";
    public static final String REQUEST_METHOD_POST = "POST";
    public static final String REQUEST_METHOD_PUT = "PUT";
    public static final String REQUEST_METHOD_DELETE = "DELETE";
    public static final String REQUEST_HEADER_AUTH = "Authorization";
    public static final String REQUEST_CONTENT_XML = "application/xml";

    public static final String TOKEN_ID = "${id}";
    public static final String TOKEN_ORDER_ID = "${orderId}";
    public static final String TOKEN_METHOD = "${method}";
    public static final String TOKEN_RESET = "${reset}";
    public static final String TOKEN_SKU = "${sku}";
    public static final String BASE_URL = "http://app.fetchapp.com/api/v2/" + TOKEN_METHOD;

    public static String generateAuthorizationKey(final String apiKey, final String apiToken) {
        return "Basic " + Base64.encodeBase64String((apiKey + ":" + apiToken).getBytes());
    }

    public static String generateRequestUrl(final String method) {
        return StringUtils.replace(BASE_URL, TOKEN_METHOD, method);
    }

    // ----- ACCOUNT ---------------------------------------------------------------------------------------------------
    public static final class Account {

        public static final String METHOD_INFORMATION = "account";
        public static final String METHOD_NEW_TOKEN = "new_token";
    }

    // ----- DOWNLOADS -------------------------------------------------------------------------------------------------
    public static final class Downloads {

        public static final String METHOD_DOWNLOADS = "downloads";
    }

    // ----- FILES -----------------------------------------------------------------------------------------------------
    public static final class Files {

        public static final String METHOD_FILES = "files";
    }

    // ----- ORDERS ----------------------------------------------------------------------------------------------------
    public static final class Orders {

        private static final String METHOD_ORDER = "orders/" + TOKEN_ID;
        private static final String METHOD_ORDER_UPDATE = "orders/" + TOKEN_ID + "/update";
        private static final String METHOD_ORDER_DELETE = "orders/" + TOKEN_ID + "/delete";
        private static final String METHOD_ORDER_DOWNLOADS = "orders/" + TOKEN_ID + "/downloads";
        private static final String METHOD_ORDER_EXPIRE = "orders/" + TOKEN_ID + "/expire";
        private static final String METHOD_ORDER_EMAIL = "orders/" + TOKEN_ID + "/send_email?reset_expiration="
                + TOKEN_RESET;
        private static final String METHOD_ORDER_EMAIL_DATE = "orders/" + TOKEN_ID + "/send_email?expiration_date="
                + TOKEN_RESET;

        private static final String METHOD_ORDER_STATS = "orders/" + TOKEN_ID + "/stats";
        public static final String METHOD_ORDERS = "orders";
        public static final String METHOD_ORDERS_OPEN = "orders?status=open";
        public static final String METHOD_ORDERS_EXPIRED = "orders?status=expired";
        public static final String METHOD_ORDER_CREATE = "orders/create";

        public static String orderRequestUrl(final String id) {
            return StringUtils.replace(METHOD_ORDER, TOKEN_ID, id);
        }

        public static String orderUpdateRequestUrl(final String id) {
            return StringUtils.replace(METHOD_ORDER_UPDATE, TOKEN_ID, id);
        }

        public static String orderDeleteRequestUrl(final String id) {
            return StringUtils.replace(METHOD_ORDER_DELETE, TOKEN_ID, id);
        }

        public static String orderDownloadsRequestUrl(final String id) {
            return StringUtils.replace(METHOD_ORDER_DOWNLOADS, TOKEN_ID, id);
        }

        public static String orderExpireRequestUrl(final String id) {
            return StringUtils.replace(METHOD_ORDER_EXPIRE, TOKEN_ID, id);
        }

        public static String orderSendEmailRequestUrl(final String id, final boolean resetExpiration) {
            return StringUtils.replaceEach(METHOD_ORDER_EMAIL, new String[] { TOKEN_ID, TOKEN_RESET },
                    new String[] { id, resetExpiration ? "true" : "false" });
        }

        public static String orderSendEmailRequestUrl(final String id, final Date expirationDate) {
            return StringUtils.replaceEach(METHOD_ORDER_EMAIL_DATE, new String[] { TOKEN_ID, TOKEN_RESET },
                    new String[] { id, DATE_FORMAT.format(expirationDate) });
        }

        public static String orderStatsRequestUrl(final String id) {
            return StringUtils.replace(METHOD_ORDER_STATS, TOKEN_ID, id);
        }
    }

    // ----- ORDER ITEMS -----------------------------------------------------------------------------------------------
    public static final class OrderItems {

        private static final String METHOD_ORDER_ITEMS = "orders/" + TOKEN_ID + "/order_items";
        private static final String METHOD_ORDER_ITEM = "orders/" + TOKEN_ORDER_ID + "/order_items/" + TOKEN_ID;
        private static final String METHOD_ORDER_ITEM_FILES = "orders/" + TOKEN_ORDER_ID + "/order_items/"
                + TOKEN_ID + "/files";
        private static final String METHOD_ORDER_ITEM_DOWNLOADS = "orders/" + TOKEN_ORDER_ID + "/order_items/"
                + TOKEN_ID + "/downloads";
        private static final String METHOD_ORDER_ITEM_EXPIRE = "orders/" + TOKEN_ORDER_ID + "/order_items/"
                + TOKEN_ID + "/expire";

        public static String orderItemsRequestUrl(final String id) {
            return StringUtils.replace(METHOD_ORDER_ITEMS, TOKEN_ID, id);
        }

        public static String orderItemRequestUrl(final String orderId, final String id) {
            return StringUtils.replaceEach(METHOD_ORDER_ITEM, new String[] { TOKEN_ORDER_ID, TOKEN_ID },
                    new String[] { orderId, id });
        }

        public static String orderItemFilesRequestUrl(final String orderId, final String id) {
            return StringUtils.replaceEach(METHOD_ORDER_ITEM_FILES, new String[] { TOKEN_ORDER_ID, TOKEN_ID },
                    new String[] { orderId, id });
        }

        public static String orderItemDownloadsRequestUrl(final String orderId, final String id) {
            return StringUtils.replaceEach(METHOD_ORDER_ITEM_DOWNLOADS, new String[] { TOKEN_ORDER_ID, TOKEN_ID },
                    new String[] { orderId, id });
        }

        public static String orderItemExpireRequestUrl(final String orderId, final String id) {
            return StringUtils.replaceEach(METHOD_ORDER_ITEM_EXPIRE, new String[] { TOKEN_ORDER_ID, TOKEN_ID },
                    new String[] { orderId, id });
        }
    }

    // ----- PRODUCTS --------------------------------------------------------------------------------------------------
    public static final class Products {

        private static final String METHOD_PRODUCT = "products/" + TOKEN_SKU;
        private static final String METHOD_PRODUCT_UPDATE = "products/" + TOKEN_SKU + "/update";
        private static final String METHOD_PRODUCT_DELETE = "products/" + TOKEN_SKU + "/delete";
        private static final String METHOD_PRODUCT_STATS = "products/" + TOKEN_SKU + "/stats";
        private static final String METHOD_PRODUCT_FILES = "products/" + TOKEN_SKU + "/files";
        private static final String METHOD_PRODUCT_DOWNLOADS = "products/" + TOKEN_SKU + "/downloads";

        public static final String METHOD_PRODUCTS = "products";
        public static final String METHOD_PRODUCT_CREATE = "products/create";

        public static String productRequestUrl(final String sku) {
            return StringUtils.replace(METHOD_PRODUCT, TOKEN_SKU, sku);
        }

        public static String productUpdateRequestUrl(final String sku) {
            return StringUtils.replace(METHOD_PRODUCT_UPDATE, TOKEN_SKU, sku);
        }

        public static String productDeleteRequestUrl(final String sku) {
            return StringUtils.replace(METHOD_PRODUCT_DELETE, TOKEN_SKU, sku);
        }

        public static String productStatisticsRequestUrl(final String sku) {
            return StringUtils.replace(METHOD_PRODUCT_STATS, TOKEN_SKU, sku);
        }

        public static String productFilesRequestUrl(final String sku) {
            return StringUtils.replace(METHOD_PRODUCT_FILES, TOKEN_SKU, sku);
        }

        public static String productDownloadsRequestUrl(final String sku) {
            return StringUtils.replace(METHOD_PRODUCT_DOWNLOADS, TOKEN_SKU, sku);
        }
    }
}