Created
December 8, 2021 13:56
-
-
Save sirex/30f595e58beb0b52cad565a061753f62 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!zsh | |
# Inventorizacija | |
# ############### | |
# | |
# Katalogo (Partnerių) API | |
# ======================== | |
# | |
# https://httpie.io/ | |
# Diegiame Python 3.9 ar naujasnę versiją, jei reikia | |
python3 --version | |
docker run -ti ubuntu:20.04 bash | |
apt update | |
apt install locales | |
update-locale LC_ALL=C.UTF-8 | |
locale-gen | |
export LC_ALL=C.UTF-8 | |
locale | |
apt update | |
apt install python3 | |
python3 --version | |
apt update | |
apt install software-properties-common | |
add-apt-repository ppa:deadsnakes/ppa | |
apt update | |
apt install python3.9 python3.9-venv | |
python3.9 --version | |
apt install sqlite3 | |
apt install httpie | |
http --version | |
apt install jq | |
jq --version | |
apt install zsh | |
zsh | |
# Katalogo (Partnerių) API | |
# https://data.gov.lt/partner/api/1 | |
# zsh (https://www.zsh.org/) | |
# jq (https://stedolan.github.io/jq/) | |
partner="https://staging.data.gov.lt/partner/api/1" | |
apikey="39d07f7f-900c-4015-acf7-ad7fdc24136c" | |
auth="Authorization: ApiKey $apikey" | |
http GET $partner/datasets $auth | |
http GET $partner/datasets $auth | jq -r '.[].title' | |
# Naujo duomenų rinkinio kūrimas | |
http POST $partner/datasets $auth <<EOF | |
{ | |
"title": "Darbo užmokesčio duomenys", | |
"description": "Valstybinių įstaigų darbuotojų darbo užmokesčio duomenys." | |
} | |
EOF | |
#| "id": 2045, | |
# Patikrinam ar duomenų rinkinys susikūrė? | |
http GET $partner/datasets $auth | jq '.[] | {id, title} | select(.title | test("^Darbo")) | .id' | |
# Katalogo viešas API | |
# https://data.gov.lt/public/api/1 | |
public="https://staging.data.gov.lt/public/api/1" | |
http GET "$public/action/package_search?q=&fq=organization_id:183" | |
http GET "$public/action/package_search?q=&fq=organization_id:183" | jq -r '.result.results[] | .title' | sort | |
# Struktūros aprašo žingsnis | |
# ########################## | |
# | |
# Spinta TUI (struktūros aprašo generavimas) | |
# ========================================== | |
# Kuriam duomenų bazę testavimiu. | |
sqlite3 duomenys.db <<EOF | |
CREATE TABLE ORGANIZACIJA ( | |
ID INTEGER PRIMARY KEY, | |
PAVADINIMAS VARCHAR(255), | |
TRUMPINYS VARCHAR(10), | |
IKURIMO_METAI INTEGER | |
); | |
INSERT INTO ORGANIZACIJA | |
(ID, PAVADINIMAS, TRUMPINYS, IKURIMO_METAI) VALUES | |
(1, "Informacinės visuomenės komitetas", "IVPK", 2000), | |
(2, "Aplinkos apsaugos agentūra", "AAA", 2001), | |
(3, "Higienos instututas", "HI", 2002), | |
(4, "Informatikos ir ryšių departamentas", "IRD", 2003); | |
EOF | |
# Patikrinam ar duomenys įsirašė | |
sqlite3 -column duomenys.db <<EOF | |
SELECT * FROM ORGANIZACIJA; | |
EOF | |
# Diegiame Spinta | |
useradd --system -g www-data --create-home --home-dir /opt/spinta spinta | |
which zsh | |
su -l spinta -s /usr/bin/zsh | |
cd | |
pwd | |
python3.9 -m venv env | |
source env/bin/activate | |
pip install spinta | |
spinta --version | |
# Prieš pradedant darbą su `spinta` komanda aktyvuojame venv | |
source env/bin/activate | |
# Generuojam duomenų struktūros aprašą | |
spinta inspect -r sql sqlite:///duomenys.db | |
spinta inspect -r sql sqlite:///duomenys.db -o sdsa.xlsx | |
# Struktūros aprašo lentelė | |
# ========================= | |
# Paruošiam ŠDSA atvėrimui | |
libreoffice sdsa.xlsx | |
# Katalogo Web UI | |
# =============== | |
# Generuojam ADSA | |
spinta copy --access open --no-source sdsa.xlsx -o adsa.csv | |
# Patikrinama ADSA check komandos pagalba. | |
spinta check adsa.csv | |
# Patikrinama ADSA rankiniu būdu. | |
libreoffice adsa.csv | |
# Katalogo (Partnerių) API | |
# ======================== | |
# Susirandam duomenų rinkinio id | |
http GET $server/datasets $auth | jq '.[] | {id, title}' | |
dataset=2034 | |
# Įkeliame duomenų struktūros aprašą | |
http -f POST $server/datasets/$dataset/structure $auth title=ADSA2 [email protected] | |
# Duomenų atvėrimas | |
# ################# | |
# Spinta TUI | |
# ========== | |
# 1. Kliento kūrimas Saugykloje. | |
# 2. Struktūros aprašo įkėlimas į Saugyklą. | |
# 3. Konfigūruojame Saugyklos klientą. | |
cat >> ~/.config/spinta/credentials.cfg <<EOF | |
[[email protected]] | |
client = mokymai | |
secret = 5SO-DrCWy32BVIUEoIwry8rVb_iK7Yjs | |
scopes = | |
spinta_set_meta_fields | |
spinta_getone | |
spinta_getall | |
spinta_search | |
spinta_changes | |
spinta_check | |
spinta_datasets_gov_ivpk_mokymai_insert | |
spinta_datasets_gov_ivpk_mokymai_upsert | |
spinta_datasets_gov_ivpk_mokymai_update | |
spinta_datasets_gov_ivpk_mokymai_patch | |
spinta_datasets_gov_ivpk_mokymai_delete | |
EOF | |
export AUTHLIB_INSECURE_TRANSPORT=1 | |
spinta run --mode external sdsa.xlsx | |
# 4. Leidžiam push komandą. | |
spinta push sdsa.xlsx -o https://[email protected] | |
# Saugyklos API | |
# ============= | |
# 1. Kliento kūrimas Saugykloje. | |
# 2. Struktūros aprašo įkėlimas į Saugyklą. | |
server=https://put-test.data.gov.lt | |
client=mokymai | |
secret=5SO-DrCWy32BVIUEoIwry8rVb_iK7Yjs | |
scopes=( | |
spinta_set_meta_fields | |
spinta_getone | |
spinta_getall | |
spinta_search | |
spinta_changes | |
spinta_check | |
spinta_datasets_gov_ivpk_mokymai_insert | |
spinta_datasets_gov_ivpk_mokymai_upsert | |
spinta_datasets_gov_ivpk_mokymai_update | |
spinta_datasets_gov_ivpk_mokymai_patch | |
spinta_datasets_gov_ivpk_mokymai_delete | |
) | |
auth="Authorization: Bearer $(http -a $client:$secret -f $server/auth/token grant_type=client_credentials scope="$scopes" | jq -r .access_token)" | |
http GET $server/datasets/gov/ivpk/mokymai/Organizacija/:format/ascii $auth | |
http POST $server/datasets/gov/ivpk/mokymai/Organizacija $auth <<EOF | |
{ | |
"id": 24, | |
"pavadinimas": "Bandymas 2", | |
"trumpinys": "BAND2", | |
"ikurimo_metai": 1998 | |
} | |
EOF | |
# Katalogo (Partnerių) API | |
# ======================== |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment