Revision 828

Date:
2021/09/08 15:14:48
Author:
ahitrov
Revision Log:
CDEK getter

Files:

Legend:

 
Added
 
Removed
 
Modified
  • utf8/plugins/webshop/services/cdek_get_pvz.pl

     
    1 #!/usr/bin/perl
    2
    3 use strict;
    4 use warnings "all";
    5 use locale;
    6
    7 use FindBin;
    8 BEGIN {
    9 require "$FindBin::RealBin/../lib/Modules.pm";
    10 }
    11
    12 use Contenido::Globals;
    13 use Contenido::Init;
    14 use ErrorTee;
    15 use PidFile;
    16 use Data::Dumper;
    17
    18 # begin
    19 Contenido::Init->init();
    20
    21 my $keeper_module = $state->project.'::Keeper';
    22 $keeper = $keeper_module->new($state);
    23
    24 #PidFile->new($keeper, compat=>1); # db-based locking (run only on one host)
    25 #PidFile->new($keeper, compat=>1, per_host=>1); # db-based locking (run on whole cluster)
    26
    27 # Plugins init
    28 for my $plugin ( split(/\s+/, $state->plugins) ) {
    29 my $class = $plugin.'::Apache';
    30 eval { $class->child_init(); };
    31 if ( $@ ) {
    32 $log->error("Не могу выполнить метод child_init плагина $plugin ($class) по причине '$@'");
    33 }
    34 }
    35
    36 ############################################
    37 # please use:
    38 # $state->{log_dir} for logging
    39 # $state->{tmp_dir} for temporary files
    40 ###########################################
    41 my $file_tmp = $state->{data_dir}.'/cdekGetPVZ.tmp.dump';
    42 my $file_russia = $state->{data_dir}.'/cdekGetPVZ_rus.dump';
    43 my $file_all = $state->{data_dir}.'/cdekGetPVZ_all.dump';
    44
    45 my $cdek = webshop::Service::CDEK->new();
    46
    47 my $langPart = '&lang=rus';
    48 my $result = $cdek->_MakeRequest( 'https://integration.cdek.ru/pvzlist/v1/json?type=ALL' . $langPart, 'get', undef, { expires_at => 30 * 3600 } );
    49
    50 my $res = $cdek->getPVZ({ lang => 'rus', country => 'Россия', no_cache => 1, raw_data => $result });
    51
    52 open FH, "> $file_tmp";
    53 print FH Dumper $res;
    54 close FH;
    55 rename $file_tmp, $file_russia;
    56
    57 $res = $cdek->getPVZ({ lang => 'rus', country => 'all', no_cache => 1, raw_data => $result });
    58
    59 open FH, "> $file_tmp";
    60 print FH Dumper $res;
    61 close FH;
    62 rename $file_tmp, $file_all;

Небольшая справка по веткам

cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.

koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.

utf8 – актуальная ветка, заточенная под UTF-8.

Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.