feat: write updateConfig GQL mutation

This commit is contained in:
Ali BARIN
2023-08-10 14:32:22 +00:00
parent efd243a340
commit ef9359b208
3 changed files with 51 additions and 4 deletions

View File

@@ -17,6 +17,7 @@ import login from './mutations/login';
import registerUser from './mutations/register-user.ee';
import resetConnection from './mutations/reset-connection';
import resetPassword from './mutations/reset-password.ee';
import updateConfig from './mutations/update-config';
import updateConnection from './mutations/update-connection';
import updateCurrentUser from './mutations/update-current-user';
import updateFlow from './mutations/update-flow';
@@ -24,8 +25,8 @@ import updateFlowStatus from './mutations/update-flow-status';
import updateRole from './mutations/update-role.ee';
import updateStep from './mutations/update-step';
import updateUser from './mutations/update-user.ee';
import verifyConnection from './mutations/verify-connection';
import upsertSamlAuthProvider from './mutations/upsert-saml-auth-provider.ee';
import verifyConnection from './mutations/verify-connection';
const mutationResolvers = {
createConnection,
@@ -47,15 +48,16 @@ const mutationResolvers = {
registerUser,
resetConnection,
resetPassword,
updateConfig,
updateConnection,
updateCurrentUser,
updateUser,
updateFlow,
updateFlowStatus,
updateRole,
updateStep,
verifyConnection,
updateUser,
upsertSamlAuthProvider,
verifyConnection,
};
export default mutationResolvers;

View File

@@ -0,0 +1,44 @@
import type { IJSONValue } from '@automatisch/types';
import Config from '../../models/config';
import Context from '../../types/express/context';
type Params = {
input: {
[index: string]: IJSONValue;
};
};
const updateConfig = async (_parent: unknown, params: Params, context: Context) => {
context.currentUser.can('update', 'Config');
const config = params.input;
const configKeys = Object.keys(config);
const updates = [];
for (const key of configKeys) {
const newValue = config[key];
const entryUpdate = Config
.query()
.insert({
key,
value: {
data: newValue
}
})
.onConflict('key')
.merge({
value: {
data: newValue
}
});
updates.push(entryUpdate);
}
await Promise.all(updates);
return config;
};
export default updateConfig;

View File

@@ -72,6 +72,7 @@ type Mutation {
registerUser(input: RegisterUserInput): User
resetConnection(input: ResetConnectionInput): Connection
resetPassword(input: ResetPasswordInput): Boolean
updateConfig(input: JSONObject): JSONObject
updateConnection(input: UpdateConnectionInput): Connection
updateCurrentUser(input: UpdateCurrentUserInput): User
updateFlow(input: UpdateFlowInput): Flow
@@ -79,8 +80,8 @@ type Mutation {
updateRole(input: UpdateRoleInput): Role
updateStep(input: UpdateStepInput): Step
updateUser(input: UpdateUserInput): User
verifyConnection(input: VerifyConnectionInput): Connection
upsertSamlAuthProvider(input: UpsertSamlAuthProviderInput): SamlAuthProvider
verifyConnection(input: VerifyConnectionInput): Connection
}
"""