From 417d931bd1c961a7aa8f1569e949bbc2a7abfade Mon Sep 17 00:00:00 2001 From: "Ole Mathias Aa. Heggem" Date: Sun, 28 Jan 2018 15:43:54 +0100 Subject: Making network first class citizen Still work in progress --- web/api/write/network-add | 49 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 web/api/write/network-add (limited to 'web/api/write/network-add') 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(); -- cgit v1.2.3