#!/usr/bin/perl

=encoding UTF-8
=cut

=head1 DESCRIPTION

=cut

# common modules
use strict;
use warnings FATAL => 'all';
use feature 'say';
use utf8;
use open qw(:std :utf8);

use Carp;
use HTTP::Tiny;
use JSON::PP;
use Path::Tiny;
use Data::Dumper;

use lib::abs qw(
    ../lib
);
use Utils;

# global vars

# subs

# main
sub main {

    my $keyset = 'form';
    my $url = "https://tanker-api.yandex-team.ru/keysets/json/?project-id=pi2&keyset-id=$keyset&flat-keyset=1";

    my $response = HTTP::Tiny->new()->get($url);

    if (!$response->{success}) {
        warn Dumper $response;
        die;
    }

    my $data = decode_json $response->{content};

    foreach my $language (get_valid_languages()) {
        my $file_name = lib::abs::path('../translations/') . '/' . $language . '.json';
        my $current = decode_json path($file_name)->slurp_raw();

        foreach my $key (keys %{$data->{$language}}) {
            my $value = $data->{$language}->{$key};

            if (ref($value) eq '') {
                $current->{$key} = $data->{$language}->{$key};
            } else {
                warn "WARNING. Language: '$language' key '$key' is not a string. Value: " . encode_json $value;
            }
        }

        path($file_name)->spew(to_pretty_json($current));
    }
}
main();
__END__
