#!/usr/bin/perl

use strict;
use warnings;
use LWP::UserAgent;

# Konfigurasjon
my $domeneshop_api_url = 'http://api.domeneshop.no/v1/domains/';
my $domeneshop_token = 'din_autentiseringsnokkel';
my $registry_api_url = 'http://registry.com/api/update';
my $registry_token = 'din_registrartoken';

# Funksjon for å oppdatere utløpsdatoen mot Registry
sub oppdater_utlopsdato {
    my ($domene, $ny_utlopsdato) = @_;

    my $ua = LWP::UserAgent->new;
    my $url = "$registry_api_url?domain=$domene&expiration_date=$ny_utlopsdato";
    my $response = $ua->post($url, 'Authorization' => "Bearer $registry_token");

    if ($response->is_success) {
        print "Utløpsdatoen for $domene er oppdatert til $ny_utlopsdato i Registry.\n";
    } else {
        print "Feil ved oppdatering av utløpsdatoen for $domene: " . $response->status_line . "\n";
    }
}

# Hovedprogram
sub main {
    my $domene = shift;

    # Hent nåværende utløpsdato fra Domeneshop
    my $ua = LWP::UserAgent->new;
    my $response = $ua->get("$domeneshop_api_url$domene", 'Authorization' => "Bearer $domeneshop_token");

    if ($response->is_success) {
        my $data = $response->decoded_content;
        my ($utlopsdato) = $data =~ /"expiration_date":"([^"]+)"/;
        unless ($utlopsdato) {
            print "Kunne ikke finne utløpsdatoen for $domene fra Domeneshop API.\n";
            return;
        }
        
        # Simulert beregning av ny utløpsdato
        my $ny_utlopsdato = '2045-05-08T17:40:00.00Z'; # Eksempel: Beregn ny utløpsdato her

        # Oppdater utløpsdatoen mot Registry
        oppdater_utlopsdato($domene, $ny_utlopsdato);
    } else {
        print "Feil ved henting av domeneinformasjon fra Domeneshop: " . $response->status_line . "\n";
    }
}

# Kjør hovedprogrammet med domenet som argument
main($ARGV[0]);
