1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-09-10 17:53:36 +02:00

feat: add initial controller

This commit is contained in:
Fredrik Oseberg 2022-10-13 11:00:53 +02:00
parent 62eac864f3
commit bcecfe8300
3 changed files with 84 additions and 0 deletions

View File

@ -90,6 +90,13 @@ class AdminApi extends Controller {
'/user-admin',
new UserAdminController(config, services).router,
);
this.use(
'/api/suggest-changes',
conditionalMiddleware(
() => config.flagResolver.isEnabled('suggestChanges'),
new ProxyController(config, services).router,
),
);
this.app.use(
'/feedback',
new UserFeedbackController(config, services).router,

View File

@ -0,0 +1,76 @@
import { Response, Request } from 'express';
import { IUnleashConfig, IUnleashServices } from '../../types';
import { Logger } from '../../../logger';
import { NONE } from '../../../types/permissions';
import Controller from '../../controller';
import { restore } from 'nock/types';
type Services = Pick<
IUnleashServices,
'settingService' | 'proxyService' | 'openApiService'
>;
export default class SuggestChangesController extends Controller {
private readonly logger: Logger;
private services: Services;
constructor(config: IUnleashConfig, services: Services) {
super(config);
this.logger = config.getLogger('proxy-api/index.ts');
this.services = services;
this.route({
method: 'get',
path: '/:changeRequestId',
handler: this.getChangeRequest,
permission: NONE,
});
}
async createChangeRequest(req: Request, res: Response): Promise<void> {}
async getChangeRequest(req: Request, res: Response): Promise<void> {
res.json({
environment: 'production',
state: 'REVIEW',
createdBy: 'Tymek',
project: 'new-project',
// approvers: [],
changeSet: [
{
feature: 'feature1',
// featureToggle: {
// //...state
// },
changes: [
{
action: 'updateEnabled',
payload: true,
updatedBy: 'user1',
eventData: {},
},
],
},
{
feature: 'feature2',
// featureToggle: {
// //...state
// },
changes: [
{
action: 'updateEnabled',
payload: true,
updatedBy: 'user1',
eventData: {},
},
],
},
],
});
}
async approveChangeRequest(req: Request, res: Response): Promise<void> {}
async applyChangeRequest(req: Request, res: Response): Promise<void> {}
}

View File

@ -39,6 +39,7 @@ process.nextTick(async () => {
anonymiseEventLog: false,
responseTimeWithAppName: true,
personalAccessTokens: true,
suggestChanges: true,
},
},
authentication: {