Web API

Drobee
Dokumentacja komunikacji pomiędzy front-, a back-endem

So far only polish version, English version will appear in future.

KOMUNIKACJA

  • Format

Używanym formatem komunikacji jest JSON-RPC  w wersji 2.0.

  • Generowanie ID zapytania

ID zapytania powinna być liczba milisekund od dnia 1. stycznia 1970 roku (czas POSIX rozszerzony o milisekundy), wysłana jako String.

  • Obiekt błędów

Błędy są zwracane zgodnie z JSON-RPC jako obiekt:

{
message: dodatkowa informacja o wyjątku (opcjonalnie),
name: nazwa wyjątku,
data: dodatkowe dane dot. błędu,
code: kod wyjątku (zawsze różny od 0)
}

Przy definicji metody, zostały opisane wyjątki które dana metoda potrafi rzucić. Gdy obiekt błędu jest różny od null należy odczytać zwróconą wartość. W wypadku rzucenia wyjątku, wartość zwracana jest nieokreślona.

Zwracana wartość
W odpowiedzi zwracana jest wartość, która jest sprecyzowana przy opisie metod.

Adresacja
Adres skryptu to:

/app.php?service=pt/jsonrpc/exec

Skrypt ten obsługuje JSON-RPC over http zarówno poprzez GET jak i POST. W przypadku metody POST istnieje możliwość wywołania kilku zapytań jednocześnie.

METODY

  • login(string email, string password) : bool

Opis
Logowanie użytkownika
Parametry
email
Adres e-mail użytkownika, maksymalnie 128 znaków, zgodny z RFC 2822, sekcja 3.4
password
Hasło w “czystej”, niezaszyfrowanej formie, minimum 6 znaków
Odpowiedź
Funkcja zwraca logiczną prawdę (true) w przypadku powodzenia
Wyjątki
WrongEmailUserException – Podany adres email jest niepoprawny (semantycznie)
PasswordTooShortUserException – Hasło jest za krótkie
BadCredentialsUserException – Błędny login lub hasło
UserException – Wystąpienie nieokreślonego błędu

  • logout() : bool

Opis
Wylogowanie użytkownika
Parametry
Nie dotyczy
Odpowiedź
Jeśli użytkownik był zalogowany zostanie zwrócona logiczna prawda (true), w przeciwnym wypadku false.
Wyjątki
UserException – Wystąpienie nieokreślonego błędu

  • register(string email, string password) : bool

Opis
Rejestracja użytkownika
Parametry
email
Adres e-mail użytkownika, maksymalnie 128 znaków, zgodny z RFC 2822, sekcja 3.4
password
Hasło w postaci czystego tekstu (nieszyfrowane) , minimum 6 znaków
Odpowiedź
Metoda zwróci logiczną prawdę w przypadku poprawnego założenia konta
Wyjątki
WrongEmailUserException – Podany adres email jest niepoprawny (semantycznie)
EmailExistsUserException – Podany adres email już istnieje w systemie
PasswordTooShortUserException – Hasło jest za krótkie
PasswordTooWeakUserException – Hasło jest zbyt proste
UserException – Wystąpienie nieokreślonego błędu

  • register(string email, string password, array(|nazwa parametru| => string) params) : bool

Opis
Rozbudowana rejestracja użytkownika o dodatkowe parametry (np. adres, czy płeć)
Parametry
email
Adres e-mail użytkownika, maksymalnie 128 znaków, zgodny z RFC 2822, sekcja 3.4
password
Hasło w postaci czystego tekstu (nieszyfrowane) , minimum 6 znaków
params
Tablica asocjacyjna z dodatkowymi informacjami o użytkowniku. Obecnie dostępne są parametry (klucze tablicy asocjacyjnej):
warehouse – przyjmujący w wartości ciąg znaków – nazwę nowego magazynu tworzonego od razu po poprawnym zarejestrowaniu użytkownika. W przypadku wystąpienia błędu (np. walidacji nazwy magazynu, lub podczas jego tworzenia) użytkownik również nie zostanie stworzony. W przypadku podania tego parametru, metoda register() dodatkowo rzuca wyjątki identycznie jak warehouse.add().
Odpowiedź
Metoda zwróci logiczną prawdę w przypadku poprawnego założenia konta
Wyjątki
WrongEmailUserException – Podany adres email jest niepoprawny (semantycznie)
EmailExistsUserException – Podany adres email już istnieje w systemie
ParamsUserException – Jeśli podano błędny dodatkowy parametr, lub został zwrócony błąd związany z tym parametrem
PasswordTooShortUserException – Hasło jest za krótkie
PasswordTooWeakUserException – Hasło jest zbyt proste
UserException – Wystąpienie nieokreślonego błędu

  • sendPassword(string email) : bool

Opis
Wysłanie użytkownikowi maila z linkiem do zmiany hasła
Parametry
email
Adres email podany przy rejestracji, maksymalnie 128 znaków, zgodny z RFC 2822, sekcja 3.4
Odpowiedź
W przypadku zgodności (istnienia) danych z parametru oraz poprawnym wysłaniu maila zostanie zwrócona wartość true
Wyjątki
WrongEmailUserException – Podany adres email jest niepoprawny (semantycznie)
UserException – Wystąpienie nieokreślonego błędu

Warehouse
Zestaw metod do obsługi magazynu. Wszystkie metody w tym zestawie dostępne są tylko dla zalogowanego użytkownika.

  • add(string name) : bool

Opis
Dodaje magazyn dla aktualnie zalogowanego użytkownika
Parametry
name
Nazwa magazynu, maksymalnie 32 znaki. Nazwa musi być zgodna z definicją etykiety (ang. label) wg RFC 1034, sekcja 3.5 :

<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]
<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
<let-dig-hyp> ::= <let-dig> | “-”
<let-dig> ::= <letter> | <digit>
<letter> ::= any one of the 52 alphabetic characters A through Z In upper case and a through z in lower case
<digit> ::= any one of the ten digits 0 through 9
Odpowiedź
True w przypadku powodzenia dodania
Wyjątki
NameWarehouseException – Błędna nazwa magazynu
NameExistsWarehouseException – Podana nazwa magazynu już istnieje
NoPermissionWarehouseException – Brak uprawnień
WarehouseException – Wystąpienie nieokreślonego błędu

  • getList() : array(array(‘id’ => int, ‘name’ => string))

Opis
Zwraca listę magazynów aktualnego użytkownika
Parametry
Nie dotyczy
Odpowiedź
Tablica zawierająca listę magazynów dostępnych dla aktualnie zalogowanego użytkownika. Każdy magazyn reprezentowany jest przez tablicę asocjacyjną z kluczami „name” (nazwa magazynu) oraz „id” (ID magazynu)
Wyjątki
WarehouseException – Wystąpienie nieokreślonego błędu

  • insertInventories(int warehouse, array(array(‘name ‘ => string, ‘amount ‘ => double, ‘cost ‘ => double)) items) : bool

Opis
Dodaje (przyjmuje) produkt(y) do magazynu
Parametry
warehouse
ID magazynu do którego żądane jest dodanie produktów. Aktualnie zalogowany musi mieć prawa zapisu do tego magazynu
items
Tablica produktów do dodania. Produkt to tablica asocjacyjna z kluczami „name” (nazwa produktu, max. 255 znaków), „amount” (ilość produktów) i „cost” (łączny koszt przyjęcia produktów)
Odpowiedź
True w przypadku poprawnego zapisu wszystkich produktów.  W przypadku błędu nie zostanie zapisany żaden element.
Wyjątki
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do zapisu w danym magazynie
NoItemWarehouseException – Brak produktów na liście
BadItemsWarehouseException – Na liście produktów istnieje co najmniej jeden błędny produkt. W polu data wyjątku zostaną zwrócone dodatkowe informacje w postaci pozycji w tablicy items, w której znaleziono pierwszy błędny produkt
WarehouseException – Wystąpienie nieokreślonego błędu

  • insertInventory(int warehouse, int move, array(‘name ‘ => string, ‘amount ‘ => double, ‘cost ‘ => double) item) : bool

Opis
Dodaje (przyjmuje) produkt do magazynu do konkretnej listy przyjęć
Parametry
warehouse
ID magazynu do którego żądane jest dodanie produktu. Aktualnie zalogowany musi mieć prawa zapisu do tego magazynu
move
ID listy przyjęć/wydań, do której ma zostać dodany produkt
item
Produkt do dodania. Produkt to tablica asocjacyjna z kluczami „name” (nazwa produktu, max. 255 znaków), „amount” (ilość produktów) i „cost” (łączny koszt przyjęcia produktów)
Odpowiedź
True w przypadku poprawnego zapisu produktu
Wyjątki
BadItemsWarehouseException – Błędne parametry produktu
NoItemWarehouseException – Pusty produkt
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do zapisu w danym magazynie
WrongMoveIdWarehouseException – Nieistniejąca lista wydań/przyjęć lub brak uprawnień do jej zapisu
WarehouseException – Wystąpienie nieokreślonego błędu
deleteInventories(int warehouse, array(array(‘name ‘ => string, ‘amount ‘ => double, ‘cost ‘ => double)) items) : bool
Opis
Usuwa (wydaje) produkt(y) z magazynu
Parametry
warehouse
ID magazynu do którego żądane jest dodanie produktów. Aktualnie zalogowany musi mieć prawa zapisu do tego magazynu
items
Tablica produktów do wydania (usunięcia). Produkt to tablica asocjacyjna z kluczami „name” (nazwa produktu, max. 255 znaków), „amount” (ilość produktów) i „cost” (łączny kwota sprzedaży/wydania produktów)
Odpowiedź
True w przypadku poprawnego usunięcia (wydania) wszystkich produktów, w przypadku wystąpienia błędu, żaden element nie zostanie skasowany
Wyjątki
BadItemsWarehouseException – Na liście produktów istnieje co najmniej jeden błędny lub nieistniejący w magazynie produkt. W polu data wyjątku zostaną zwrócone dodatkowe informacje w postaci pozycji w tablicy items, w której znaleziono pierwszy błędny produkt
BadItemsWarehouseException – Nie ma wystarczającej ilości produktów w magazynie; W polu data wyjątku zostanie zwrócona tablica złożona z tablic asocjacyjnych z kluczami: „name” (nazwa przedmiotu), „amount” (aktualna ilość danego przedmiotu w bazie), „requiredAmount” (wymagana ilość w zapytaniu do usunięcia)
NoItemWarehouseException – Brak produktów na liście
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do zapisu w danym magazynie
WarehouseException – Wystąpienie nieokreślonego błędu

  • deleteInventory(int warehouse, int move, int itemId) : bool

Opis
Usuwa (wydaje) produkt z magazynu z konkretnej listy wydań
Parametry
warehouse
ID magazynu do którego żądane jest dodanie produktu. Aktualnie zalogowany musi mieć prawa zapisu do tego magazynu
move
ID listy przyjęć/wydań, do której ma zostać dodany produkt
itemId
ID produktu do usunięcia. ID można pobrać za pomocą getInventoriesListByDeletion() raz getInventoriesListByInsertion()
Odpowiedź
True w przypadku poprawnego usunięcia (wydania) produktu
Wyjątki
BadItemIdWarehouseException – Błędne lub nieistniejące ID produktu
WrongMoveIdWarehouseException – Nieistniejąca lista wydań/przyjęć lub brak uprawnień do jej zapisu
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do zapisu w danym magazynie
WarehouseException – Wystąpienie nieokreślonego błędu
editInventory(int warehouse, int move, int itemId, array(‘name ‘ => string, ‘amount ‘ => double, ‘cost ‘ => double) item) : bool
Opis
Edytuje produkt w magazynie z konkretnej listy wydań
Parametry
warehouse
ID magazynu do którego żądana jest edycja produktu. Aktualnie zalogowany musi mieć prawa zapisu do tego magazynu
move
ID listy przyjęć/wydań, w której ma zostać edytowany produkt.
itemId
ID produktu do edycji. ID można pobrać za pomocą getInventoriesListByDeletion() raz getInventoriesListByInsertion().
item
Edytowany produkt. Produkt to tablica asocjacyjna z kluczami „name” (nazwa produktu, max. 255 znaków), „amount” (ilość produktów) i „cost” (łączny kwota sprzedaży/wydania produktów). Zostaną zmodyfikowane tylko podane parametry
Odpowiedź
True w przypadku poprawnej edycji produktu
Wyjątki
BadItemIdWarehouseException – Błędne lub nieistniejący ID produktu
BadItemsWarehouseException – Błędne parametry produktu
WrongMoveIdWarehouseException – Nieistniejąca lista wydań/przyjęć lub brak uprawnień do jej zapisu
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do zapisu w danym magazynie
WarehouseException – Wystąpienie nieokreślonego błędu
countInventoryList(int warehouse): int
Opis
Zwraca ilość produktów, znajdujących się w danym magazynie
Parametry
warehouse
ID magazynu z którego żądane jest zliczenie ilości produktów. Aktualnie zalogowany użytkownik musi mieć prawa odczytu do tego magazynu
Odpowiedź
Ilość przedmiotów w danym magazynie
Wyjątki
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do odczytu w danym magazynie
WarehouseException – Wystąpienie nieokreślonego błędu
getInventoryList(int warehouse) : array(array(‘name’ => string, ‘amount’ => double))
Opis
Zwraca listę produktów, znajdujących się w danym magazynie, wraz z aktualną ich ilością
Parametry
warehouse
ID magazynu z którego żądana jest lista produktów. Aktualnie zalogowany użytkownik musi mieć prawa odczytu do tego magazynu
Odpowiedź
Tablica zawierająca listę produktów dla danego magazynu. Każdy produkt reprezentowany jest przez tablicę asocjacyjną z kluczami „name” (nazwa produktu) oraz „amount” (pozostała ilość w magazynie)
Wyjątki
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do odczytu w danym magazynie
WarehouseException – Wystąpienie nieokreślonego błędu
getInventoryList(int warehouse, array(‘name’ => string, ‘amount’ => string, ‘:limit’ => int, ‘:offset’ => int) search) : array(array(‘name’ => string, ‘amount’ => double))
Opis
Zwraca przefiltrowaną listę produktów, znajdujących się w danym magazynie, wraz z aktualną ich ilością.
Parametry
warehouse
ID magazynu, z którego żądana jest lista produktów. Aktualnie zalogowany użytkownik musi mieć prawa odczytu do tego magazynu
search
Tablica asocjacyjna z identycznymi kluczami jak w przypadku zwracanego elementu. Poniżej przedstawione zostały klucze możliwe do wykorzystania oraz opis ich zastosowania
name
Nazwa lub fragment nazwy szukanego przedmiotu. Aby wyszukać fragment ciągu, należy skorzystać z wieloznacznego symbolu „*”, zastępującego dowolny ciąg znaków (również pusty). Szczególnym przypadkiem jest przedmiot o nazwie „*”, który zwraca wszystkie przedmioty (domyślnie, jeśli parametr nie zostanie określony)
amount
Filtr na ilość przedmiotów. Format zapytania jest tablicą, której elementy składają się z napisów (stringów) złożonych z operatora relacji (=, >=, <=, <, >, <>) oraz liczby następującej po nim, np.: „>0”. Elementy w tablicy łączone są za pomocą koniunkcji. Przykładowo array(‘>=5’, ‘<10’) odpowiada x?5?x<10
:limit
Ogranicza ilość pobranych rekordów do podanej wartości. Domyślnie pobierane są wszystkie rekordy.
:o ffset
Liczba pominiętych rekordów z początku wyniku zapytania. Domyślnie pobierane są wszystkie rekordy.
Odpowiedź
Tablica zawierająca przefiltrowaną listę produktów dla danego magazynu. Każdy produkt reprezentowany jest przez tablicę asocjacyjną z kluczami „name” (nazwa produktu) oraz „amount” (pozostała ilość w magazynie).
Wyjątki
BadItemsWarehouseException – Ciąg do wyszukania jest błędny lub zawiera błędne znaki
BadRangeWarehouseException – Błędna nierówność lub zakres w zapytaniu
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do odczytu w danym magazynie
WarehouseException – Wystąpienie nieokreślonego błędu

  • getInventoryNameList(int warehouse) : array(array(‘name’ => string, ‘id’ => int))

Opis
Zwraca listę nazw produktów wraz z ich ID, znajdujących się w danym magazynie (niezależnie czy ich stan magazynowy jest równy 0)
Parametry
warehouse
ID magazynu z którego żądana jest lista produktów. Aktualnie zalogowany użytkownik musi mieć prawa odczytu do tego magazynu
Odpowiedź
Tablica zawierająca listę nazw produktów dla danego magazynu. Każdy produkt reprezentowany jest przez tablicę asocjacyjną z kluczami „name” (nazwa produktu) oraz „id” (wewnętrzny identyfikator produktu)
Wyjątki
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do odczytu w danym magazynie
WarehouseException – Wystąpienie nieokreślonego błędu
findInventoryNames(int warehouse, string search) : array(array(‘name’ => string, ‘id’ => int))
Opis
Zwraca listę produktów z podanym ciągiem znaków dla danego magazynu, użyteczne do wyświetlania listy podpowiedzi produktów
Parametry
warehouse
ID magazynu z którego żądana jest lista produktów. Aktualnie zalogowany użytkownik musi mieć prawa odczytu do tego magazynu
search
Ciąg tekstowy do przefiltrowania listy produktów (min. 2 znaki)
Odpowiedź
Tablica zawierająca przefiltrowaną (przeszukaną) listę produktów dla danego magazynu. Zwracane są tylko te produkty, które pasują do wyrażenia podanego w parametrze „search”. Maksymalnie zostanie zwróconych 32 produkty. Każdy produkt reprezentowany jest przez tablicę asocjacyjną z kluczami „name” (nazwa produktu) oraz „id” (ID produktu)
Wyjątki
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do odczytu w danym magazynie
WrongSearchStringWarehouseException – Błędny (np. zbyt krótki) ciąg do wyszukania
WarehouseException – Wystąpienie nieokreślonego błędu

  • getInsertionList(int warehouse) : array(array(‘id’ => int, ‘date’ => int, ‘items’ => string))

Opis
Lista przyjęć produktów dla podanego magazynu
Parametry
warehouse
ID magazynu z którego żądana jest lista przyjęć produktów. Aktualnie zalogowany użytkownik musi mieć prawa odczytu do tego magazynu
Odpowiedź
Tablica zawierająca listę przyjęć produktów dla danego magazynu. Każde przyjęcie reprezentowane jest przez tablicę asocjacyjną z kluczami „id” (ID produktu), „date” (ilość sekund od 1. stycznia 1970 do momentu danego przyjęcia produktów – tzw. czas POSIX (ang. POSIX time)) oraz „items” – kilka pierwszych przedmiotów z listy, rozdzielonych przecinkami.
Wyjątki
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do odczytu w danym magazynie
WarehouseException – Wystąpienie nieokreślonego błędu
getInsertionList(int warehouse, array(‘date’ => string, ‘:limit’ => int, ‘:offset’ => int) search) : array(array(‘id’ => int, ‘date’ => int, ‘items’ => string))
Opis
Przefiltrowana lista przyjęć produktów dla podanego magazynu
Parametry
warehouse
ID magazynu z którego żądana jest lista przyjęć produktów. Aktualnie zalogowany użytkownik musi mieć prawa odczytu do tego magazynu
search
Tablica asocjacyjna z identycznymi kluczami jak w przypadku zwracanego elementu. Poniżej przedstawione zostały klucze możliwe do wykorzystania oraz opis ich zastosowania
date
Filtr daty w postaci czasu POSIX (POSIX time). Format zapytania jest tablicą, której elementy składają się z napisów (stringów) złożonych z operatora relacji (=, >=, <=, <, >, <>) oraz liczby następującej po nim, np.: „>0”. Elementy w tablicy łączone są za pomocą koniunkcji. Przykładowo array(‘>=5’, ‘<10’) odpowiada x?5?x<10
:limit
Ogranicza ilość pobranych rekordów do podanej wartości. Domyślnie pobierane są wszystkie rekordy.
:o ffset
Liczba pominiętych rekordów z początku wyniku zapytania. Domyślnie pobierane są wszystkie rekordy.
Odpowiedź
Tablica zawierająca listę przyjęć produktów dla danego magazynu. Każde przyjęcie reprezentowane jest przez tablicę asocjacyjną z kluczami „id” (ID produktu), „date” (ilość sekund od 1. stycznia 1970 do momentu danego przyjęcia produktów – tzw. czas POSIX (ang. POSIX time)) oraz „items” – kilka pierwszych przedmiotów z listy, rozdzielonych przecinkami.
Wyjątki
BadRangeWarehouseException – Błędna nierówność lub zakres w zapytaniu
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do odczytu w danym magazynie
WarehouseException – Wystąpienie nieokreślonego błędu
getDeletionList(int warehouse): array(array(‘id’ => int, ‘date’ => int, ‘items’ => string))
Opis
Lista wydań produktów dla podanego magazynu
Parametry
warehouse
ID magazynu z którego żądana jest lista wydań produktów. Aktualnie zalogowany użytkownik musi mieć prawa odczytu do tego magazynu
Odpowiedź
Tablica zawierająca listę wydań produktów dla danego magazynu. Każde wydanie reprezentowane jest przez tablicę asocjacyjną z kluczami „id” (ID produktu), „date” (ilość sekund od 1. stycznia 1970 do momentu danego wydania produktów) oraz „items” – kilka pierwszych przedmiotów z listy, rozdzielonych przecinkami.
Wyjątki
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do odczytu w danym magazynie
WarehouseException – Wystąpienie nieokreślonego błędu

  • getDeletionList(int warehouse, array(‘date’ => string, ‘:limit’ => int, ‘:offset’ => int) search): array(array(‘id’ => int, ‘date’ => int, ‘items’ => string))

Opis
Lista wydań produktów dla podanego magazynu
Parametry
warehouse
ID magazynu z którego żądana jest lista wydań produktów. Aktualnie zalogowany użytkownik musi mieć prawa odczytu do tego magazynu
search
Tablica asocjacyjna z identycznymi kluczami jak w przypadku zwracanego elementu. Poniżej przedstawione zostały klucze możliwe do wykorzystania oraz opis ich zastosowania
date
Filtr daty w postaci czasu POSIX (POSIX time). Format zapytania jest tablicą, której elementy składają się z napisów (stringów) złożonych z operatora relacji (=, >=, <=, <, >, <>) oraz liczby następującej po nim, np.: „>0”. Elementy w tablicy łączone są za pomocą koniunkcji. Przykładowo array(‘>=5’, ‘<10’) odpowiada x?5?x<10
:limit
Ogranicza ilość pobranych rekordów do podanej wartości. Domyślnie pobierane są wszystkie rekordy.
:o ffset
Liczba pominiętych rekordów z początku wyniku zapytania. Domyślnie pobierane są wszystkie rekordy.
Odpowiedź
Tablica zawierająca listę wydań produktów dla danego magazynu. Każde wydanie reprezentowane jest przez tablicę asocjacyjną z kluczami „id” (ID produktu), „date” (ilość sekund od 1. stycznia 1970 do momentu danego wydania produktów) oraz „items” – kilka pierwszych przedmiotów z listy, rozdzielonych przecinkami.
Wyjątki
BadRangeWarehouseException – Błędna nierówność lub zakres w zapytaniu
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do odczytu w danym magazynie
WarehouseException – Wystąpienie nieokreślonego błędu

  • getMoveList(int warehouse): array(array(‘id’ => int, ‘date’ => int, ‘items’ => string))

Opis
Lista przesunięć produktów dla podanego magazynu (uogólniona wersja dwóch powyższych metod)
Parametry
warehouse
ID magazynu z którego żądana jest lista przesunięć produktów. Aktualnie zalogowany użytkownik musi mieć prawa odczytu do tego magazynu
Odpowiedź
Tablica zawierająca listę przesunięć produktów dla danego magazynu. Każde wydanie reprezentowane jest przez tablicę asocjacyjną z kluczami „id” (ID produktu), „date” (ilość sekund od 1. stycznia 1970 do momentu danego wydania produktów), „direction” (kierunek, „1” dla przychodzących, „2” dla wychodzących przesunięć) oraz „items” – kilka pierwszych przedmiotów z listy, rozdzielonych przecinkami.
Wyjątki
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do odczytu w danym magazynie
WarehouseException – Wystąpienie nieokreślonego błędu
getMoveList(int warehouse, array(‘date’ => string, ‘:limit’ => int, ‘:offset’ => int) search): array(array(‘id’ => int, ‘date’ => int, ‘items’ => string))
Opis
Lista przesunięć produktów dla podanego magazynu (uogólniona wersja dwóch powyższych metod)
Parametry
warehouse
ID magazynu z którego żądana jest lista przesunięć produktów. Aktualnie zalogowany użytkownik musi mieć prawa odczytu do tego magazynu
search
Tablica asocjacyjna z identycznymi kluczami jak w przypadku zwracanego elementu. Poniżej przedstawione zostały klucze możliwe do wykorzystania oraz opis ich zastosowania
date
Filtr daty w postaci czasu POSIX (POSIX time). Format zapytania jest tablicą, której elementy składają się z napisów (stringów) złożonych z operatora relacji (=, >=, <=, <, >, <>) oraz liczby następującej po nim, np.: „>0”. Elementy w tablicy łączone są za pomocą koniunkcji. Przykładowo array(‘>=5’, ‘<10’) odpowiada x?5?x<10
:limit
Ogranicza ilość pobranych rekordów do podanej wartości. Domyślnie pobierane są wszystkie rekordy.
:o ffset
Liczba pominiętych rekordów z początku wyniku zapytania. Domyślnie pobierane są wszystkie rekordy.
Odpowiedź
Tablica zawierająca listę przesunięć produktów dla danego magazynu. Każde wydanie reprezentowane jest przez tablicę asocjacyjną z kluczami „id” (ID produktu), „date” (ilość sekund od 1. stycznia 1970 do momentu danego wydania produktów), „direction” (kierunek, „1” dla przychodzących, „2” dla wychodzących przesunięć) oraz „items” – kilka pierwszych przedmiotów z listy, rozdzielonych przecinkami.
Wyjątki
BadRangeWarehouseException – Błędna nierówność lub zakres w zapytaniu
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do odczytu w danym magazynie
WarehouseException – Wystąpienie nieokreślonego błędu

  • getInventoryListByInsertion(int warehouse, int insertion) : array(array(‘id’ => int, ‘name ‘ => string, ‘amount ‘ => double, ‘cost ‘ => double))

Opis
Lista produktów dodanych (przyjętych) w konkretnym przyjęciu
Parametry
warehouse
ID magazynu z którego żądana jest lista produktów. Aktualnie zalogowany użytkownik musi mieć prawa odczytu do tego magazynu
insertion
ID listy przyjęć, z której żądana jest lista produktów.
Odpowiedź
Tablica zawierająca listę produktów dla danej listy przyjęć produktów i określonego magazynu. Każdy produkt reprezentowany jest przez tablicę asocjacyjną z kluczami „id” (ID produktu), „name” (nazwa produktu), „amount” (ilość dodanych produktów danej kategorii) oraz „cost” (całkowity koszt dodanych produktów)
Wyjątki
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do odczytu w danym magazynie
WrongInsertionIdWarehouseException – Nieistniejąca lista przyjęć lub brak uprawnień do jej odczytu
WarehouseException – Wystąpienie nieokreślonego błędu

  • getInventoryListByDeletion(int warehouse, int deletion) : array(array(‘id’ => int, ‘name ‘ => string, ‘amount ‘ => double, ‘cost ‘ => double))

Opis
Lista produktów usuniętych (wydanych) w konkretnym wydaniu
Parametry
warehouse
ID magazynu z którego żądana jest lista produktów. Aktualnie zalogowany użytkownik musi mieć prawa odczytu do tego magazynu
deletion
ID listy wydań, z której żądana jest lista produktów.
Odpowiedź
Tablica zawierająca listę produktów dla danej listy wydań produktów i określonego magazynu. Każdy produkt reprezentowany jest przez tablicę asocjacyjną z kluczami „id” (ID produktu), „name” (nazwa produktu), „amount” (ilość dodanych produktów danej kategorii) oraz „cost” (całkowity koszt dodanych produktów)
Wyjątki
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do odczytu w danym magazynie
WrongDeletionIdWarehouseException – Nieistniejąca lista wydań lub brak uprawnień do jej odczytu
WarehouseException – Wystąpienie nieokreślonego błędu
Wyjątki
Lista wszystkich możliwych wyjątków.
user
BadCredentialsUserException – Błędny login lub hasło
EmailExistsUserException – Podany adres email już istnieje w systemie
ParamsUserException – Jeśli podano błędny dodatkowy parametr, lub został zwrócony błąd związany z tym parametrem
PasswordTooShortUserException – Hasło jest za krótkie
PasswordTooWeakUserException – Hasło jest zbyt proste
UserException – Wystąpienie nieokreślonego błędu
WrongEmailUserException – Podany adres email jest niepoprawny (semantycznie)
warehouse
BadItemIdWarehouseException – Błędne lub nieistniejące ID produktu
BadItemsWarehouseException – Błędny produkt(y) na liście
BadRangeWarehouseException – Błędna nierówność lub zakres w zapytaniu
NameExistsWarehouseException – Podana nazwa magazynu już istnieje
NameWarehouseException – Błędna nazwa magazynu
NoItemWarehouseException – Brak produktów na liście
NoPermissionWarehouseException – Brak uprawnień
WarehouseException – Wystąpienie nieokreślonego błędu
WrongIdWarehouseException – Nieistniejący magazyn, lub brak praw do danego magazynu
WrongInsertionIdWarehouseException – Nieistniejąca lista przyjęć lub brak uprawnień do jej odczytu
WrongDeletionIdWarehouseException – Nieistniejąca lista wydań lub brak uprawnień do jej odczytu
WrongMoveIdWarehouseException – Nieistniejąca lista wydań/przyjęć lub brak uprawnień do jej odczytu
WrongSearchStringWarehouseException – Błędny (np. zbyt krótki) ciąg do wyszukania

  • Facebook
  • MySpace
  • Twitter
  • LinkedIn
  • Google Buzz
  • Yahoo Buzz
  • Delicious
  • Wykop
  • Share/Bookmark

Leave a Reply

Your email address will not be published. Required fields are marked *

*

*


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Get Adobe Flash playerPlugin by wpburn.com wordpress themes