@pubsweet/job-xsweet

2.2.4 • Public • Published

XSweet job component

WARNING: This is an early version, please test and report any issues.

This is a component that uses PubSweet's internal job queue to provide XSweet conversions to PubSweet applications.

Usage

Once specified in your app's components config by adding '@pubsweet/job-xsweet' adds:

A /convertDocxToHTML endpoint

That takes a docx file formdata input, with e.g. something like a

curl -X POST \
  'http://localhost:3000/convertDocxToHTML?=' \
  -H 'cache-control: no-cache' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -F docx=@/home/pubsweet/components/server/job-xsweet/src/test.docx

This publishes a job that the job runner (a Docker container) picks up.

Docker container

Run it with: docker run -e POSTGRES_HOST=yourdbhost -e POSTGRES_PORT=yourdbport -e POSTGRES_DB=yourdatabasename -e POSTGRES_USER=yourdbusername -e POSTGRES_PASSWORD=yourdbpassword pubsweet/job-xsweet:latest

The environment variables are needed so that the Docker container knows how to connect to your database.

After the Docker container starts up, jobs from the endpoint will start to be processed.

Testing

Testing has to be done semi-automatically for now, as GitLab CI does not allow for service-2-service communication yet (https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1041), by running:

cd components/server/job-xsweet && yarn test --testRegex test/standaloneXsweetTest.js

And in a separate window, building and starting the job-xsweet container like so:

docker build -t pubsweet/job-xsweet components/server/job-xsweet
docker run -e DATABASE_URL="postgres://yourUsername@host.docker.internal/test" pubsweet/job-xsweet

This will test both the GraphQL subscription and the classic long-running HTTP request path.

Readme

Keywords

none

Package Sidebar

Install

npm i @pubsweet/job-xsweet

Weekly Downloads

84

Version

2.2.4

License

MIT

Unpacked Size

27 kB

Total Files

11

Last publish

Collaborators

  • jure
  • shockandaudrey
  • diversemix
  • andrei.c9
  • yannisbarlas