/*
* Copyright (C) 2016 Tamic
*
* link :https://github.com/Tamicer/Novate
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.sxjs.common.model.http;
import java.util.Map;
import io.reactivex.Flowable;
import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.http.Body;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.PartMap;
import retrofit2.http.Path;
import retrofit2.http.QueryMap;
import retrofit2.http.Streaming;
import retrofit2.http.Url;
/**
* ApiService
* Created by Tamic on 2016-06-03.
*/
public interface BaseApiService {
@POST()
@FormUrlEncoded
Flowable<ResponseBody> executePost(
@Url() String url,
@FieldMap Map<String, Object> maps);
@POST("{url}")
Flowable<ResponseBody> executePostBody(
@Path("url") String url,
@Body Object object);
@GET()
Observable<ResponseBody> executeGet(
@Url String url,
@QueryMap Map<String, Object> maps);
@Multipart
@POST()
Flowable<ResponseBody> upLoadImage(
@Url() String url,
@Part("image\"; filename=\"image.jpg") RequestBody requestBody);
@Multipart
@POST()
Flowable<ResponseBody> uploadFlie(
@Url String fileUrl,
@Part("description") RequestBody description,
@Part("files") MultipartBody.Part file);
@POST()
Flowable<ResponseBody> uploadFiles(
@Url() String url,
@Body Map<String, RequestBody> maps);
@POST()
Flowable<ResponseBody> uploadFile(
@Url() String url,
@Body RequestBody file);
@Multipart
@POST
Flowable<ResponseBody> uploadFileWithPartMap(
@Url() String url,
@PartMap() Map<String, RequestBody> partMap,
@Part("file") MultipartBody.Part file);
@Streaming
@GET
Flowable<ResponseBody> downloadFile(@Url String fileUrl);
@GET
Flowable<ResponseBody> downloadSmallFile(@Url String fileUrl);
@GET
Flowable<ResponseBody> getTest(@Url String fileUrl,
@QueryMap Map<String, Object> maps);
@FormUrlEncoded
@POST()
Flowable<ResponseBody> postForm(
@Url() String url,
@FieldMap Map<String, Object> maps);
@POST()
Flowable<ResponseBody> postRequestBody(
@Url() String url,
@Body RequestBody Body);
}