0.1.13 • Published 1 year ago

@lsi-ci-prs/wyliczenia v0.1.13

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
1 year ago

@lsi/wyliczenia

Rozwiązywany problem

Poszczególne mikroserwisy czasami odwołują się do tej samej logiki, w tym przypadku aplikacja backendowa weryfikuje wyliczenia przesłane przez frontend, co wiąże się z wykorzystaniem tych samych algorytmów i argumentów. Powstają problemy związane z zapewnieniem pełnej synchroniazacji funkcji i w konsekwencji zapewniania prawidłowych (przynajmniej tożsamych) wyników w każdym momencie. Problem jest poważniejszy, gdy obie aplikacje zaprogramowano w różnych językach, np frontend w javascript i backend w php. Rozwiązaniem może być dostarcznie odpowiednich metod wyliczeń w bibliotece instalowanej w aplikacjach wykorzystujących taką logoikę (niekoniecznie bezpośrednio - np. backend może wykorzystać dedykowane API).

Działanie

Biblioteka zwraca instancje klasy odpowiadające wzorom dla instytucji IOK (np. RR_PT01 ) zawierające metody. Metoda stanowi taką funkcję klasy, która zwraca wynik wyliczenia w oparciu o swoisty algorytm i odpowiednio dostarczone argumenty. Taką metodę będziemy nazywać dalej wyliczeniem. Wyliczenie znane jest po stronie aplikacji WEB i aplikacji dostarczającej API, tzn. znane jest przeznaczenie i argmenty. Przykładowa instancja: rr_pt01

Przykład zastosowania

ES6:

import { rr_pt01 } from '@lsi-ci-prs/wyliczenia'
console.log(rr_pt01.addTwoNumbers(1, 5)) // output:  6

Dostępne klasy i metody

RR_PT01

Metoda (resolver)Argumenty wymaganeArgumentyOpisPrzykładEndpoint
dofinansowanietakkwota (number)wylicza dofinansowanierr_pt01.dofinansowanie(100)
wkladWlasnytakkwota (number)wylicza wkład własnyrr_pt01.wkladWlasny(100)
zadaniatakjson dla strony 'zadania'wylicza dofin.i wkład własny dla każdego zadaniarr_pt01.zadania(params)api/wyliczenia/pt01/zadania

FS_EFS01 - fs_efs01

Metoda (resolver)Argumenty wymaganeArgumentyOpisPrzykład
zadaniatakjson dla strony 'zadania'podsumowuje wydatki kwalifikowalne i dofinansowaniefs_efs01.zadania(params)

gdzie params =

{
    "zadania": [
        {
            "opis": "opis zadania 1",
            "nazwa": "Zadanie1",
            "data_rozpoczecia": "2022-01-05",
            "data_zakonczenia": "2022-02-05",
            "wartosc_zadanie_razem": 13,
            "dofinansowanie_zadanie_razem": "11"
        },
        {
            "opis": "opis zadania 2",
            "nazwa": "Zadanie2",
            "data_rozpoczecia": "2021-04-04",
            "data_zakkonczenia": "2021-01-08",
            "wartosc_zadanie_razem": 2,
            "dofinansowanie_zadanie_razem": "8"
        },
        {
            "opis": "opis zadania 3",
            "nazwa": "Zadanie3",
            "data_rozpoczecia": "2021-01-02",
            "data_zakonczenia": "2021-01-08",
            "wartosc_zadanie_razem": 4,
            "dofinansowanie_zadanie_razem": "3"
        }
    ],
    "podsumowanie_zadan_kwal": 18,
    "podsumowanie_zadan_dof": 21
}

zwócony wynik (zwróć uwagę na podsumowania, są różne, ponieważ metoda dokonała własnych, prawidłowych wyliczeń):

{
    "status": "success",
    "msg": "udało się uzyskać wynik",
    "result": {
        "zadania": [
            {
                "opis": "opis zadania 1",
                "nazwa": "Zadanie1",
                "data_rozpoczecia": "2022-01-05",
                "data_zakonczenia": "2022-02-05",
                "wartosc_zadanie_razem": 13,
                "dofinansowanie_zadanie_razem": "11"
            },
            {
                "opis": "opis zadania 2",
                "nazwa": "Zadanie2",
                "data_rozpoczecia": "2021-04-04",
                "data_zakkonczenia": "2021-01-08",
                "wartosc_zadanie_razem": 2,
                "dofinansowanie_zadanie_razem": "8"
            },
            {
                "opis": "opis zadania 3",
                "nazwa": "Zadanie3",
                "data_rozpoczecia": "2021-01-02",
                "data_zakonczenia": "2021-01-08",
                "wartosc_zadanie_razem": 4,
                "dofinansowanie_zadanie_razem": "3"
            }
        ],
        "podsumowanie_zadan_kwal": 19,
        "podsumowanie_zadan_dof": 22
    }
}

Publikacja (wymagany deploy token)

Następuje wyłacznie z tego projektu. Paczki rezydują w repozytorium własnej instancji Gitlab, powiązane są (scope) z grupą LSI. W celu publickacji wykorzystano konfigurację poprzez plik .npmrc (root projektu):

@lsi:registry=https://gitlab-ci-prs.slaskie.pl/api/v4/packages/npm/
//gitlab-ci-prs.slaskie.pl/api/v4/packages/npm/:_authToken=${NPM registry LSI group token}
//gitlab-ci-prs.slaskie.pl/api/v4/projects/22/packages/npm/:_authToken=${NPM registry LSI group token}

Niezbędny jest również wpis w package.json:

{
  "publishConfig": {
    "@lsi:registry": "https://gitlab-ci-prs.slaskie.pl/api/v4/projects/22/packages/npm/"
  }
}

Każda publikacja wymaga podniesienia wersji (package.json)

npm publish

Instalacja (wymagany deploy token)

Projekt, w którym chcemy zainstalować paczkę z repozytorium własnej instancji Gitlab powinien także zostać skonfigurowany, np poprzez plik .npmrc:

@lsi:registry=https://gitlab-ci-prs.slaskie.pl/api/v4/packages/npm/
//gitlab-ci-prs.slaskie.pl/api/v4/packages/npm/:_authToken=${NPM registry LSI group token}
0.1.10

1 year ago

0.1.11

1 year ago

0.1.12

1 year ago

0.1.13

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.8

1 year ago

0.1.7

1 year ago

0.1.9

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.6

1 year ago

0.1.5

1 year ago

0.0.34

2 years ago

0.0.30

2 years ago

0.0.31

2 years ago

0.0.32

2 years ago

0.0.33

2 years ago

0.0.27

2 years ago

0.0.28

2 years ago

0.0.29

2 years ago

0.0.20

2 years ago

0.0.22

2 years ago

0.0.23

2 years ago

0.0.24

2 years ago

0.0.25

2 years ago

0.0.15

2 years ago

0.0.16

2 years ago

0.0.17

2 years ago

0.0.18

2 years ago

0.0.19

2 years ago

0.0.10

2 years ago

0.0.11

2 years ago

0.0.12

2 years ago

0.0.14

2 years ago

0.0.26

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago