endlessdreams/easy-smta-toolkit

此包已被 废弃 并不再维护。作者建议使用 endlessdreams/fao-toolkit 包。

FAO SMTA API 工具包

v0.0.4 2018-10-26 12:56 UTC

This package is auto-updated.

Last update: 2022-02-01 13:13:43 UTC


README

用于种子库的预期用途

Easysmta 是一个 HTTP POST 工具程序,用于注册您机构的标准材料转让协议 (SMTA)。要使其工作,您需要以下内容:

  1. FAO 的 Planttreaty 网站 上有一个账户。
  2. 两个数据库表或数据视图,包含 SMTA 和 SMTA 材料数据。
  3. 在此应用程序的配置文件中进行配置。
  4. 运行 bin/easysmta post 命令。该命令使用参数限制您打算发布/注册哪些 SMTA。

安装

要使用 composer 安装此库,请在控制台中运行以下命令

composer require endlessdreams/easy-smta-toolkit

或将包手动添加到 composer.json 文件的 require 部分

"endlessdreams/easy-smta-toolkit": "^1.0"

或全局安装

composer global require endlessdreams/easy-smta-toolkit

这将安装 easysmta 到 ~/.composer/vendor/ 目录中,最重要的是,easysmta CLI 工具安装在 ~/.composer/vendor/bin/。

只需将此目录添加到您的 PATH,例如在 ~/.bash_profile (或 ~/.bashrc) 中这样

export PATH=~/.composer/vendor/bin:$PATH

现在 easysmta 就可在您的命令行上使用了。

要使您的工具保持最新,您只需这样做

composer global update
composer global install

要删除包,请编辑 ~/.composer/composer.json,然后运行 composer global update。

配置

配置文件位于 easysmta 应用程序文件夹中:config/local.php。在此文件中,您将看到以下结构


return [
    'database' => [
        'driver' => getenv('EASYSMTA_DRIVER'),
        'database' => getenv('EASYSMTA_DATABASE'),
        'username' => getenv('EASYSMTA_USERNAME'),
        'password' => getenv('EASYSMTA_PASSWORD'),
        'hostname'  => getenv('EASYSMTA_HOSTNAME'),
    ],
    'map' => [
        'table_order' => 'easysmta',
        'table_item' => 'easysmtaitem',
        'columns_order' => [
            'id' => 'id',
            'symbole' => 'symbole',
            'date' => 'date',
            'type' => 'type',
            'language' => 'language',
            'shipName' => 'shipname',
            'recipient_type' => 'recipient_type',
            'recipient_pid' => 'recipient_pid',
            'recipient_name' => 'recipient_name',
            'recipient_address' => 'recipient_address',
            'recipient_country' => 'recipient_country',
            'document_location' => 'document_location',
            'document_retInfo' => 'document_retinfo'
        ],
        'columns_item' => [
            'crop' => 'crop',
            'sampleid' => 'sampleid',
            'pud' => 'pud',
            'ancestry' => 'ancestry'
        ],
    ],
    'provider' => [
        'type' => 'or',
        'pid' => getenv('PROVIDER_INSTITUTE_CODE') ?? 'YOUR INSTITUTE CODE',
        'name' => getenv('PROVIDER_INSTITUTE_NAME') ?? 'YOUR INSTITUTE NAME',
        'address' => getenv('PROVIDER_INSTITUTE_ADDRESS') ?? 'YOUR INSTITUTE ADDRESS',
        'country' => getenv('PROVIDER_INSTITUTE_COUNTRY_CODE') ?? 'XXX',
        'email' => getenv('PROVIDER_INSTITUTE_EMAIL') ?? 'contact@any.institute'
    ],
    'fao' => [
        'username' => getenv('EASYSMTA_FAO_USERNAME'),
        'password' => getenv('EASYSMTA_FAO_PASSWORD'),
        'testusername' => getenv('EASYSMTA_FAO_TEST_USERNAME'),
        'testpassword' => getenv('EASYSMTA_FAO_TEST_PASSWORD'),
    ],
];

在配置文件中设置数据库和 FAO HTTPS API 凭据,或导出到 ~/.bash_profile (或 ~/.bashrc) 的环境变量中。

用法

以下示例假设您的当前工作目录为 bin 或应用程序已全局安装。

要测试生成到终端的 xml。

easysmta xml-dry-run

要测试生成到 2018-01-01 的所有 SMTA xml。(此处不需要 https 凭据,只需您的数据库即可)

easysmta xml-dry-run --to=2018-01-01

要测试发布到 2018-01-01 的所有 SMTA。

easysmta register --to=2018-01-01 -t

要测试从 2017-01-01 到 2018-01-01 发布所有 SMTA。

easysmta register --from=2017-01-01 --to=2018-01-01 -t

实际发布到 2018-01-01 的所有 SMTA。(无需测试)

easysmta register --to=2018-01-01

鸣谢

ir. R (Roel) Hoekstra 和 dr.ir. TJL (Theo) van Hintum 在荷兰遗传资源中心,让我查看他们的 dos cmd 工具包。

FAO 气候、生物多样性、土地和水部门 IT 的 Marco Marsella 先生,给予大力支持。