## OpenCA - Command
## (c) 1998-2002 by Massimiliano Pala and OpenCA Group
## (c) Copyright 2003-2004 The OpenCA Project
##
##   File Name: setupInitialCert
##       Brief: manage the links for the intializationphases
##     Version: $Revision: 1.7.2.2 $
## Description: create the links and call the scripts
##  Parameters: dest

use strict;

sub cmdSetupInitialCert {

    generalError (gettext ("Unknown destination command"))
        if ($query->param ('dest') !~ /^basic_csr|pkcs10_req|editCSR|viewCSR|viewCert$/);

    if ($query->param ('dest') =~ /basic_csr/)
    {
        $query->param (-name => "CSR_TYPE", -value => "basic");
    } elsif ($query->param ('dest') =~ /editCSR/) {
        $query->param (-name => "key", -value => libDBGetLastDefinedItem ("NEW_REQUEST")->getSerial());
        $query->param (-name => "dataType", -value => "NEW_REQUEST");
    } elsif ($query->param ('dest') =~ /viewCSR/) {
        $query->param (-name => "key", -value => libDBGetLastDefinedItem ("PENDING_REQUEST")->getSerial());
        $query->param (-name => "dataType", -value => "PENDING_REQUEST");
    } else {
        $query->param (-name => "key", -value => libDBGetLastDefinedItem ("VALID_CERTIFICATE")->getSerial());
        $query->param (-name => "dataType", -value => "VALID_CERTIFICATE");
    }
    libExecuteCommand ($query->param ('dest'));

}

sub libDBGetLastDefinedItem
{
    my $object = libDBGetLastItem ( @_ );
    if (not $object)
    {
        generalError (i18nGettext ("The database contains no object of the requested datatype (__DATATYPE__).",
                                   "__DATATYPE__", $_[0]));
    }
    return $object;
}

1;
