summaryrefslogtreecommitdiffstats
path: root/ui/imports/api/connection-tests/methods.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/imports/api/connection-tests/methods.js')
-rw-r--r--ui/imports/api/connection-tests/methods.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/ui/imports/api/connection-tests/methods.js b/ui/imports/api/connection-tests/methods.js
new file mode 100644
index 0000000..7badfb1
--- /dev/null
+++ b/ui/imports/api/connection-tests/methods.js
@@ -0,0 +1,52 @@
+/////////////////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others /
+// /
+// All rights reserved. This program and the accompanying materials /
+// are made available under the terms of the Apache License, Version 2.0 /
+// which accompanies this distribution, and is available at /
+// http://www.apache.org/licenses/LICENSE-2.0 /
+/////////////////////////////////////////////////////////////////////////////////////////
+
+import * as R from 'ramda';
+import { ValidatedMethod } from 'meteor/mdg:validated-method';
+import { ConnectionTests } from './connection-tests';
+import { getSchemaForGroupName } from '/imports/api/environments/environments';
+
+export const insert = new ValidatedMethod({
+ name: 'connection_tests.insert',
+ validate: ConnectionTests.simpleSchema()
+ .pick([
+ 'environment',
+ 'test_configurations',
+ 'test_configurations.$',
+ ]).validator({ clean: true, filter: false }),
+ run({
+ environment,
+ test_configurations,
+ }) {
+ let connection_test = ConnectionTests.schema.clean({});
+
+ test_configurations = R.filter((config) => {
+ let validationContext = getSchemaForGroupName(config.name).newContext();
+ try {
+ let result = validationContext.validate(config);
+ return result;
+ } catch (_e) {
+ return false;
+ }
+ }, test_configurations);
+
+ let test_targets = R.map((config) => config.name, test_configurations);
+ let submit_timestamp = moment().format();
+
+ connection_test = R.merge(connection_test, {
+ environment,
+ test_targets,
+ test_configurations,
+ submit_timestamp
+ });
+
+ let insertResult = ConnectionTests.insert(connection_test);
+ return insertResult;
+ },
+});