Skip to content
This repository has been archived by the owner on Apr 20, 2021. It is now read-only.

A microservice for printing receipts, built at Tedra.

Notifications You must be signed in to change notification settings

montyanderson/receipt-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

receipt-service

A microservice for printing receipts, built at Tedra.

dependencies Status

Deployment

Raspberry Pi

Download latest Node.js ARMv6 binaries.

$ wget https://nodejs.org/dist/v8.2.1/node-v8.2.1-linux-armv6l.tar.xz

Extract and copy to /usr/local.

$ tar xvfs node-v8.2.1-linux-armv6l.tar.xz
$ sudo cp -r node-v8.2.1-linux-armv6l/* /usr/local/

Add pi to the lp linux group and re-login.

$ sudo adduser pi lp
$ su pi

Install dependencies and run the service.

$ npm install
$ node index

You're done!

API

Templating

Included is a configured Mustache template renderer, allowing control over formatting of text printed.

wrap

{{#wrap}}Lorem ipsum dolor sit amet, consectetur adipiscing elit....{{/wrap}}
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Quisque pulvinar
fermentum massa non aliquet. Duis sed
porttitor nulla, vitae fermentum neque.
Sed nisi lorem, faucibus a auctor id,
interdum sed sem. Etiam pulvinar aliquam
rutrum. Sed consectetur rhoncus egestas.
Nunc risus dolor, mollis eget finibus sit
amet, viverra vitae leo.

centerWrap

{{#center}}Lorem ipsum dolor sit amet, consectetur adipiscing elit....{{/center}}
Lorem ipsum dolor sit amet, consectetur
    adipiscing elit. Quisque pulvinar
  fermentum massa non aliquet. Duis sed
 porttitor nulla, vitae fermentum neque.
  Sed nisi lorem, faucibus a auctor id,
 interdum sed sem. Etiam pulvinar aliquam
 rutrum. Sed consectetur rhoncus egestas.
Nunc risus dolor, mollis eget finibus sit
         amet, viverra vitae leo.

Endpoints

POST /raw

Prints raw text data, without parsing it as a template.

$ curl -X POST --data "Hello, World" http://localhost:8080/raw
{"success":true}

POST /document

Prints text data, parsing it as a template.

$ curl -X POST --data "{{#centerWrap}}Hello, World{{/centerWrap}}" http://localhost:8080/document
{"success":true}

POST /order

Prints a receipt, formatting it as an order.

{
	merchant: "Tedra",
	date: "Monday, 31 July 2017",
	order: "Order #131390",
	total: "£1000402",
	text: "{{#centerWrap}}Thank you for shopping with us, we hope you enjoy maximum uptime with little latency.{{/centerWrap}}",
	items: [
		{
			name: "Node.js Microservice",
			price: "£1000000"
		},
		{
			name: "JSON API",
			price: "£400"
		},
		{
			name: "Extra Cheese",
			price: "£2"
		},
	]
}

Releases

No releases published

Packages

No packages published