Return correct headers

This commit is contained in:
James Cole
2025-01-25 04:48:51 +01:00
parent 6f63ddf5b0
commit 663202bfc6
16 changed files with 31 additions and 21 deletions

View File

@@ -41,6 +41,7 @@ use Illuminate\Http\JsonResponse;
class AccountController extends Controller class AccountController extends Controller
{ {
use AccountFilter; use AccountFilter;
protected array $accepts = ['application/json'];
/** @var array<int, string> */ /** @var array<int, string> */
private array $balanceTypes; private array $balanceTypes;
@@ -123,6 +124,6 @@ class AccountController extends Controller
} }
); );
return response()->json($return); return response()->api($return);
} }
} }

View File

@@ -74,6 +74,6 @@ class BillController extends Controller
} }
); );
return response()->json($filtered->toArray()); return response()->api($filtered->toArray());
} }
} }

View File

@@ -73,6 +73,6 @@ class BudgetController extends Controller
} }
); );
return response()->json($filtered); return response()->api($filtered);
} }
} }

View File

@@ -73,6 +73,6 @@ class CategoryController extends Controller
} }
); );
return response()->json($filtered); return response()->api($filtered);
} }
} }

View File

@@ -77,7 +77,7 @@ class CurrencyController extends Controller
]; ];
} }
return response()->json($result); return response()->api($result);
} }
/** /**
@@ -103,6 +103,6 @@ class CurrencyController extends Controller
]; ];
} }
return response()->json($result); return response()->api($result);
} }
} }

View File

@@ -75,6 +75,6 @@ class ObjectGroupController extends Controller
]; ];
} }
return response()->json($return); return response()->api($return);
} }
} }

View File

@@ -87,7 +87,7 @@ class PiggyBankController extends Controller
]; ];
} }
return response()->json($response); return response()->api($response);
} }
/** /**
@@ -124,6 +124,6 @@ class PiggyBankController extends Controller
]; ];
} }
return response()->json($response); return response()->api($response);
} }
} }

View File

@@ -73,6 +73,6 @@ class RecurrenceController extends Controller
]; ];
} }
return response()->json($response); return response()->api($response);
} }
} }

View File

@@ -72,6 +72,6 @@ class RuleController extends Controller
]; ];
} }
return response()->json($response); return response()->api($response);
} }
} }

View File

@@ -72,6 +72,6 @@ class RuleGroupController extends Controller
]; ];
} }
return response()->json($response); return response()->api($response);
} }
} }

View File

@@ -75,6 +75,6 @@ class TagController extends Controller
]; ];
} }
return response()->json($array); return response()->api($array);
} }
} }

View File

@@ -84,7 +84,7 @@ class TransactionController extends Controller
]; ];
} }
return response()->json($array); return response()->api($array);
} }
/** /**
@@ -122,6 +122,6 @@ class TransactionController extends Controller
]; ];
} }
return response()->json($array); return response()->api($array);
} }
} }

View File

@@ -72,6 +72,6 @@ class TransactionTypeController extends Controller
]; ];
} }
return response()->json($array); return response()->api($array);
} }
} }

View File

@@ -26,6 +26,7 @@ namespace FireflyIII\Api\V1\Controllers;
use Carbon\Carbon; use Carbon\Carbon;
use Carbon\Exceptions\InvalidFormatException; use Carbon\Exceptions\InvalidFormatException;
use FireflyIII\Exceptions\BadHttpHeaderException;
use FireflyIII\Models\Preference; use FireflyIII\Models\Preference;
use FireflyIII\Models\TransactionCurrency; use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Support\Facades\Amount; use FireflyIII\Support\Facades\Amount;
@@ -60,11 +61,13 @@ abstract class Controller extends BaseController
use ValidatesRequests; use ValidatesRequests;
protected const string CONTENT_TYPE = 'application/vnd.api+json'; protected const string CONTENT_TYPE = 'application/vnd.api+json';
protected const string JSON_CONTENT_TYPE = 'application/json';
/** @var array<int, string> */ /** @var array<int, string> */
protected array $allowedSort; protected array $allowedSort;
protected ParameterBag $parameters; protected ParameterBag $parameters;
protected bool $convertToNative = false; protected bool $convertToNative = false;
protected array $accepts = ['application/json'];
protected TransactionCurrency $nativeCurrency; protected TransactionCurrency $nativeCurrency;
/** /**
@@ -82,9 +85,15 @@ abstract class Controller extends BaseController
$this->convertToNative = Amount::convertToNative(); $this->convertToNative = Amount::convertToNative();
$this->nativeCurrency = Amount::getNativeCurrency(); $this->nativeCurrency = Amount::getNativeCurrency();
app()->setLocale($language); app()->setLocale($language);
} }
// filter down what this endpoint accepts.
if (!$request->accepts($this->accepts)) {
throw new BadHttpHeaderException(sprintf('Sorry, Accept header "%s" is not something this endpoint can provide.', $request->header('Accept')));
}
return $next($request); return $next($request);
} }
); );

View File

@@ -58,7 +58,7 @@ class AboutController extends Controller
'driver' => $currentDriver, 'driver' => $currentDriver,
]; ];
return response()->api(['data' => $data])->header('Content-Type', self::CONTENT_TYPE); return response()->api(['data' => $data])->header('Content-Type', self::JSON_CONTENT_TYPE);
} }
/** /**

View File

@@ -86,7 +86,7 @@ class ConfigurationController extends Controller
]; ];
} }
return response()->json($return); return response()->api($return);
} }
/** /**
@@ -142,7 +142,7 @@ class ConfigurationController extends Controller
]; ];
} }
return response()->json(['data' => $data])->header('Content-Type', self::CONTENT_TYPE); return response()->api(['data' => $data])->header('Content-Type', self::JSON_CONTENT_TYPE);
} }
/** /**
@@ -173,6 +173,6 @@ class ConfigurationController extends Controller
'editable' => true, 'editable' => true,
]; ];
return response()->json(['data' => $data])->header('Content-Type', self::CONTENT_TYPE); return response()->api(['data' => $data])->header('Content-Type', self::CONTENT_TYPE);
} }
} }