package com.bocloud.ims.interfaces.installation;

import java.util.Map;

import com.bocloud.cmp.entity.enums.installation.EndPoints;
import com.bocloud.common.enums.BoCloudMethod;
import com.bocloud.common.model.Result;

/**
 * 请求Rackhd方法的封装
 *
 * @author 007
 */
public interface RackHdService {

    /**
     * 根据ref构建请求的url
     *
     * @param ref
     * @return
     */
    public String buildUrl(String ref);

    /**
     * 构建请求RackHD的url
     *
     * @param endpoints url枚举类
     * @param param     url参数
     * @return 请求url
     */
    public String buildUrl(final EndPoints endpoints, String param);

    /**
     * 构建请求RackHD的url
     *
     * @param endpoints url枚举类
     * @param param     url中参数
     * @param paramMap  url key value参数
     * @return 请求url
     */
    public String buildUrl(final EndPoints endpoints, String param, Map<String, String> paramMap);

    /**
     * 请求rackhd
     *
     * @param jsonData 请求的json数据
     * @param url      rackhd的url
     * @param method   rackhd的请求方法
     * @return 请求url
     */
    public Result request(String jsonData, String url, BoCloudMethod method);

}
