circulation-import
Set of tools facilitating the process of importing book collections into SimplyE's Circulation Manager by using SFTP protocol.
Architecture
circulation-import consists of two parts:
- client responsible for uploading content to the SFTP server, waiting for a report, downloading it and converting it to CSV format
- server responsible for watching for new book collections, importing them into CM using its directory_import script and uploading a report to the SFTP server
Picture below illustrates the architecture of the solution:
Another picture below contains a sequence diagram
Usage
- Update all the submodules:
git submodule update --remote --recursive
cd circulation-lcp-test
git submodule update --remote --recursive
cd ..
- Run the LCP testbed:
docker-compose --file circulation-lcp-test/docker-compose.yml --env-file circulation-lcp-test/.env up -d
-
Follow the instructions in LCP testbed's README.md file to set it up
-
Run the server:
docker-compose --file circulation-lcp-test/docker-compose.yml --file docker-compose.yml --env-file circulation-lcp-test/.env up -d
- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate
- Install circulation-import from PyPi:
pip install circulation-import
- Run the client:
python -m circulation-import client import \
--collection-name=lcp \
--data-source-name=data_source_1 \
--books-directory=./circulation-lcp-test/lcp-collection/collection \
--covers-directory=./circulation-lcp-test/lcp-collection/collection \
--reports-directory=./reports \
--metadata-file=./circulation-lcp-test/lcp-collection/collection/onix.xml \
--metadata-format=onix \
--configuration-file=./configuration/client-configuration.yml \
--logging-configuration-file=./configuration/logging.yml
- Go to reports folder and find a report in CSV format