#!/usr/bin/perl

use strict;
use CGI;

use Opals::Context;
use SIP::Template;

my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }

my $cgi = CGI->new;

# $cgi->param('aaa') returns an array of aaa
my $input = $cgi->Vars();

#my $op = $input->{'op'};
my $template = SIP::Template->new(filename => 'login.tmpl',);

my ($uuid, $sc, $ip) = ($input->{'uuid'}, $input->{'sc'}, $input->{'ip'});

my @val = ($uuid);
my ($is_uuid_valid) = $dbh->selectrow_array(<<_SQL_, undef, @val);
select  count(*)
from    opl_preference
where   var = 'acsd_uuid'
     && val = ?
_SQL_

if ($is_uuid_valid == 1) {
  my $sessionid = _register_session($dbh, $sc, $ip);
  $template->param(session_id => $sessionid,);
}

$template->write(cgi => $cgi);

################################################################################
sub _register_session {
  my ($dbh, $sc, $ip) = @_;

#  my ($sessionid) = $dbh->selectrow_array('select uuid()');
  my $sessionid = `cat /proc/sys/kernel/random/uuid`;
  chomp $sessionid;

  my @val = ($sessionid, $sc, $ip);
  $dbh->do(<<_SQL_, undef, @val);
insert into sip_session (sessionid,sc,ipaddress) values (?,?,?)
_SQL_

  return $sessionid;
}
