import { AxiosInstance, AxiosPromise } from "axios";
import * as uuid from "uuid/v4";
import { ApiActions } from "~/services/api/api-actions";
+import * as QueryString from "query-string";
interface Errors {
errors: string[];
filters: filters ? `[${filters}]` : undefined,
order: order ? order : undefined
};
- return CommonService.defaultResponse(
- this.serverApi
- .get(this.resourceType, {
- params: CommonService.mapKeys(_.snakeCase)(params)
+
+ if (QueryString.stringify(params).length <= 1500) {
+ return CommonService.defaultResponse(
+ this.serverApi.get(this.resourceType, { params }),
+ this.actions
+ );
+ } else {
+ // Using the POST special case to avoid URI length 414 errors.
+ const formData = new FormData();
+ formData.append("_method", "GET");
+ Object.keys(params).map(key => {
+ if (params[key] !== undefined) {
+ formData.append(key, params[key]);
+ }
+ });
+ return CommonService.defaultResponse(
+ this.serverApi.post(this.resourceType, formData, {
+ params: {
+ _method: 'GET'
+ }
}),
- this.actions
- );
+ this.actions
+ );
+ }
}
update(uuid: string, data: Partial<T>) {