aboutsummaryrefslogtreecommitdiffstats
path: root/web/api/write/network-add
diff options
context:
space:
mode:
authorOle Mathias Aa. Heggem <msbone1995@gmail.com>2018-01-28 15:43:54 +0100
committerOle Mathias Aa. Heggem <msbone1995@gmail.com>2018-01-28 15:43:54 +0100
commit417d931bd1c961a7aa8f1569e949bbc2a7abfade (patch)
tree26fe991a502ea4c7966f906237d197180bc31fef /web/api/write/network-add
parent9866a8734360d54294ad96ad5149a44d676f1b83 (diff)
Making network first class citizen
Still work in progress
Diffstat (limited to 'web/api/write/network-add')
-rw-r--r--web/api/write/network-add49
1 files changed, 49 insertions, 0 deletions
diff --git a/web/api/write/network-add b/web/api/write/network-add
new file mode 100644
index 0000000..d1aab4e
--- /dev/null
+++ b/web/api/write/network-add
@@ -0,0 +1,49 @@
+#! /usr/bin/perl
+# vim:ts=8:sw=8
+
+#use CGI qw(fatalsToBrowser);
+use DBI;
+use lib '/opt/gondul/include';
+use nms;
+use nms::web qw(%get_params %json finalize_output get_input $dbh);
+use nms::util qw(guess_placement);
+use strict;
+use warnings;
+use JSON;
+use Data::Dumper;
+use nms::oplog qw(oplog);
+
+$nms::web::cc{'max-age'} = "0";
+
+my $in = get_input();
+my @tmp = @{JSON::XS::decode_json($in)};
+
+my @added;
+my @dups;
+
+my $sth = $nms::web::dbh->prepare("SELECT name FROM networks WHERE name=?");
+
+foreach my $tmp2 (@tmp) {
+ my %network = %{$tmp2};
+ my $affected = 0;
+ my %template = ();
+ if (not defined($network{'name'})) {
+ next;
+ }
+
+ $sth->execute( $network{'name'});
+ while ( my @row = $sth->fetchrow_array ) {
+ $affected += 1;
+ }
+
+ if ($affected == 0) {
+ $nms::web::dbh->do("INSERT INTO NETWORKS (name) VALUES ('$network{'name'}');");
+ push @added, $network{'name'};
+ oplog("\"" . $network{'name'} . "\"", "Network added: " . $network{'name'});
+ }
+}
+
+$json{'networks_addded'} = \@added;
+
+print "X-ban: /api/.*\n";
+finalize_output();