1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-09 00:18:00 +01:00

refactor: always accept any content type for GET reqs (#1672)

This commit is contained in:
olav 2022-06-07 09:32:18 +02:00 committed by GitHub
parent e5fe268844
commit 9aa1f39add
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 13 additions and 15 deletions

View File

@ -31,7 +31,6 @@ export default class ArchiveController extends Controller {
this.route({
method: 'get',
path: '/features',
acceptAnyContentType: true,
handler: this.getArchivedFeatures,
permission: NONE,
middleware: [
@ -46,7 +45,6 @@ export default class ArchiveController extends Controller {
this.route({
method: 'get',
path: '/features/:projectId',
acceptAnyContentType: true,
handler: this.getArchivedFeaturesByProjectId,
permission: NONE,
middleware: [

View File

@ -69,7 +69,6 @@ class FeatureController extends Controller {
this.route({
method: 'get',
path: '',
acceptAnyContentType: true,
handler: this.getAllToggles,
permission: NONE,
middleware: [
@ -100,7 +99,6 @@ class FeatureController extends Controller {
method: 'get',
path: '/:featureName/tags',
handler: this.listTags,
acceptAnyContentType: true,
permission: NONE,
middleware: [
openApiService.validPath({

View File

@ -86,7 +86,6 @@ export default class ProjectFeaturesController extends Controller {
this.route({
method: 'get',
path: PATH_ENV,
acceptAnyContentType: true,
permission: NONE,
handler: this.getEnvironment,
middleware: [
@ -130,7 +129,6 @@ export default class ProjectFeaturesController extends Controller {
method: 'get',
path: PATH_STRATEGIES,
handler: this.getStrategies,
acceptAnyContentType: true,
permission: NONE,
middleware: [
openApiService.validPath({
@ -160,7 +158,6 @@ export default class ProjectFeaturesController extends Controller {
method: 'get',
path: PATH_STRATEGY,
handler: this.getStrategy,
acceptAnyContentType: true,
permission: NONE,
middleware: [
openApiService.validPath({
@ -217,7 +214,6 @@ export default class ProjectFeaturesController extends Controller {
this.route({
method: 'get',
path: PATH,
acceptAnyContentType: true,
handler: this.getFeatures,
permission: NONE,
middleware: [
@ -263,7 +259,6 @@ export default class ProjectFeaturesController extends Controller {
this.route({
method: 'get',
path: PATH_FEATURE,
acceptAnyContentType: true,
handler: this.getFeature,
permission: NONE,
middleware: [

View File

@ -42,7 +42,6 @@ export default class VariantsController extends Controller {
method: 'get',
path: PREFIX,
permission: NONE,
acceptAnyContentType: true,
handler: this.getVariants,
middleware: [
openApiService.validPath({

View File

@ -18,16 +18,25 @@ interface IRequestHandler<
): Promise<void> | void;
}
interface IRouteOptions {
method: 'get' | 'post' | 'put' | 'patch' | 'delete';
interface IRouteOptionsBase {
path: string;
permission: string;
middleware?: RequestHandler[];
handler: IRequestHandler;
acceptAnyContentType?: boolean;
acceptedContentTypes?: string[];
}
interface IRouteOptionsGet extends IRouteOptionsBase {
method: 'get';
}
interface IRouteOptionsNonGet extends IRouteOptionsBase {
method: 'post' | 'put' | 'patch' | 'delete';
acceptAnyContentType?: boolean;
}
type IRouteOptions = IRouteOptionsNonGet | IRouteOptionsGet;
const checkPermission = (permission) => async (req, res, next) => {
if (!permission || permission === NONE) {
return next();
@ -74,7 +83,7 @@ export default class Controller {
private useContentTypeMiddleware(options: IRouteOptions): RequestHandler[] {
const { middleware = [], acceptedContentTypes = [] } = options;
return options.acceptAnyContentType
return options.method === 'get' || options.acceptAnyContentType
? middleware
: [requireContentType(...acceptedContentTypes), ...middleware];
}
@ -94,7 +103,6 @@ export default class Controller {
path,
handler,
permission,
acceptAnyContentType: true,
});
}