Skip to content

Commit

Permalink
Admin endpoint for route data
Browse files Browse the repository at this point in the history
  • Loading branch information
sdg9 committed Apr 12, 2022
1 parent 691fff7 commit f216c3f
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 14 deletions.
17 changes: 9 additions & 8 deletions libs/core/src/lib/__tests__/core.spec.ts
Expand Up @@ -669,22 +669,23 @@ describe('mezzo', () => {
expect(res.status).toBe(200);
expect(res.body).toEqual([
{
_activeVariant: 'variant1',
_variants: {},
activeVariant: 'variant1',
id: 'GET /route1',
method: 'GET',
path: 'route1',
routeData: { id: 'GET /route1', path: 'route1' },
sessionState: { state: {} },
variants: [
{
id: 'variant1',
label: 'variant1',
},
],
},
{
_activeVariant: 'default',
_variants: {},
activeVariant: 'default',
id: 'POST /route2',
method: 'POST',
path: 'route2',
routeData: { id: 'POST /route2', method: 'POST', path: 'route2' },
sessionState: { state: {} },
variants: [],
},
]);
});
Expand Down
2 changes: 1 addition & 1 deletion libs/core/src/lib/admin.ts
Expand Up @@ -28,7 +28,7 @@ export const addAdminEndpoints = (app: express.Express, mezzo: Mezzo) => {
app.get(`/mezzo/routes`, (req, res) => {
// const routes = mezzo.userRoutes;
// TODO: format and return data
res.json(mezzo.userRoutes);
res.json(mezzo.serialiazeRoutes());
// res.json({
// id: 'todoId',
// routes: 'todoRoutes',
Expand Down
27 changes: 27 additions & 0 deletions libs/core/src/lib/core.ts
Expand Up @@ -138,6 +138,33 @@ export class Mezzo {
const url = `http://localhost:${this.port}${MEZZO_API_PATH}/sessionVariantState/update/${sessionId}`;
await axios.post(url, payload);
};

public serialiazeRoutes = () => {
return this.userRoutes.map((route) => {
// const variants = route.getVariants();
// console.log('KEYS: ', variants);
const variantRetVal = [];
route.getVariants().forEach((value, key) => {
console.log('Id: ' + key + ' label: ' + value.id);
variantRetVal.push({
id: key,
label: value.id,
});
// variantRetVal[key] = {
// label: value.id,
// };
});

return {
id: route.id,
method: route.method,
path: route.path,
// variants: Object.fromEntries(variants),
variants: variantRetVal,
activeVariant: route.getActiveVariant(),
};
});
};
}

export default new Mezzo();
16 changes: 11 additions & 5 deletions libs/core/src/models/route-model.ts
Expand Up @@ -15,7 +15,11 @@ export class Route {
private routeData: RouteData;
private sessionState: SessionState;

public getActiveVariantId(request: Request | null) {
public getVariants() {
return this._variants;
}

public getActiveVariantId(request?: Request) {
const variantRequestHeader = request?.get(X_REQUEST_VARIANT);
const sessionVariantRequestHeader = request?.get(X_REQUEST_SESSION);
const routeStateVariant = this._activeVariant;
Expand All @@ -31,8 +35,10 @@ export class Route {
return variantRequestHeader || sessionVariant || routeStateVariant;
}

public getActiveVariant(activeVariantId: string) {
return this._variants.get(activeVariantId);
// public getActiveVariant(activeVariantId: string) {
public getActiveVariant() {
// return this._variants.get(activeVariantId);
return this._activeVariant;
}

public id: string;
Expand Down Expand Up @@ -64,8 +70,8 @@ export class Route {
callback = this.routeData.callback;
handler = this.routeData.handler;
} else {
callback = this.getActiveVariant(activeVariant).callback;
handler = this.getActiveVariant(activeVariant).handler;
callback = this._variants.get(activeVariant).callback;
handler = this._variants.get(activeVariant).handler;
}

logger.info(
Expand Down

0 comments on commit f216c3f

Please sign in to comment.