lamassu-server/packages/server/lib/new-admin/graphql/resolvers/machineGroups.resolver.js
2025-12-31 19:04:13 +01:00

39 lines
1 KiB
JavaScript

const DataLoader = require('dataloader')
const {
getAllMachineGroups,
createMachineGroup,
deleteMachineGroup,
assignComplianceTriggerSetToMachineGroup,
} = require('../../services/machineGroups')
const {
getComplianceTriggerSetsByIdsBatch,
} = require('../../services/triggers')
const complianceTriggerSetsLoader = new DataLoader(
ids => getComplianceTriggerSetsByIdsBatch(ids),
{ cache: false },
)
const resolvers = {
MachineGroup: {
complianceTriggerSet: parent =>
parent.complianceTriggerSetId
? complianceTriggerSetsLoader.load(parent.complianceTriggerSetId)
: null,
},
Query: {
machineGroups: () => getAllMachineGroups(),
},
Mutation: {
createMachineGroup: (...[, { name }]) => createMachineGroup(name),
deleteMachineGroup: (...[, { id }]) => deleteMachineGroup(id),
assignComplianceTriggerSetToMachineGroup: (
source,
{ id, complianceTriggerSetId },
) => assignComplianceTriggerSetToMachineGroup(id, complianceTriggerSetId),
},
}
module.exports = resolvers