Skip to content

Commit

Permalink
Removed duplicated data fetch from resolver for Config (#31)
Browse files Browse the repository at this point in the history
  • Loading branch information
petruki authored Oct 26, 2024
1 parent f86339b commit a2b215e
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 14 deletions.
25 changes: 13 additions & 12 deletions src/client/resolvers.js
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ export async function resolveGroupConfig(source, _id, name, activated, context)
}

export async function resolveDomain(activated, context) {
let domain = await Domain.findOne({ _id: context.domain }).lean().exec();
const domain = await Domain.findById(context.domain).lean().exec();
if (activated !== undefined) {
if (domain.activated[context.environment] !== activated) {
return null;
Expand All @@ -85,8 +85,8 @@ export async function resolveDomain(activated, context) {
return domain;
}

export async function checkDomain(domainId) {
return Domain.findOne({ _id: domainId }, null, { lean: true });
export async function findDomain(domainId) {
return Domain.findById(domainId).lean();
}

/**
Expand All @@ -101,7 +101,9 @@ async function resolveComponentsFirst(source, context, groups) {
context._component = component?._id;
for (const group of groups) {
let configsLength = await Config.find({
domain: source._id, group: group._id, components: context._component
domain: source._id,
group: group._id,
components: context._component
}).countDocuments().exec();

if (configsLength) {
Expand All @@ -113,12 +115,11 @@ async function resolveComponentsFirst(source, context, groups) {
return groups;
}

async function checkGroup(configId) {
const config = await Config.findOne({ _id: configId }, null, { lean: true }).exec();
return GroupConfig.findOne({ _id: config.group }, null, { lean: true });
async function findGroup(config) {
return GroupConfig.findById(config.group).lean();
}

async function checkConfigStrategies(configId, strategyFilter) {
async function findConfigStrategies(configId, strategyFilter) {
return ConfigStrategy.find({ config: configId }, strategyFilter).lean();
}

Expand Down Expand Up @@ -198,16 +199,16 @@ export async function resolveCriteria(config, context, strategyFilter) {
let domain, group, strategies;

await Promise.all([
checkDomain(context.domain),
checkGroup(config._id),
checkConfigStrategies(config._id, strategyFilter)
findDomain(context.domain),
findGroup(config),
findConfigStrategies(config._id, strategyFilter)
]).then(result => {
domain = result[0];
group = result[1];
strategies = result[2];
});

let response = {
const response = {
domain,
group,
strategies,
Expand Down
4 changes: 2 additions & 2 deletions src/routers/client-api.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { body, check, query, header } from 'express-validator';
import jwt from 'jsonwebtoken';
import { checkConfig, checkConfigComponent, validate } from '../middleware/validators.js';
import { appAuth, appGenerateCredentials } from '../middleware/auth.js';
import { resolveCriteria, checkDomain } from '../client/resolvers.js';
import { resolveCriteria, findDomain } from '../client/resolvers.js';
import { getConfigs } from '../services/config.js';
import { clientLimiter } from '../middleware/limiter.js';
import { StrategiesType } from '../models/config-strategy.js';
Expand Down Expand Up @@ -51,7 +51,7 @@ router.get('/criteria/snapshot_check/:version', appAuth, clientLimiter, [
check('version', 'Wrong value for domain version').isNumeric()
], validate, async (req, res) => {
try {
const domain = await checkDomain(req.domain);
const domain = await findDomain(req.domain);
const version = req.params.version;

if (domain.lastUpdate > version) {
Expand Down

0 comments on commit a2b215e

Please sign in to comment.