Order Dominos pizza from the command line

apizza logo

Build Status GoDoc Go Report Card codecov TODOs

Dominos pizza from the command line.

Table of Contents

Installation

Download the precompiled binaries for Mac, Windows, and Linux

Homebrew
brew install harrybrwn/tap/apizza
Debian/Ubuntu
curl -LO https://github.com/harrybrwn/apizza/releases/download/v0.0.3/apizza_0.0.3_Linux_64-bit.deb
sudo dpkg -i apizza_0.0.3_Linux_64-bit.deb
Rpm
curl -LO https://github.com/harrybrwn/apizza/releases/download/v0.0.3/apizza_0.0.3_Linux_64-bit.rpm
sudo rpm -i apizza_0.0.3_Linux_64-bit.rpm
Archives

Compile

go get -u github.com/harrybrwn/apizza

or

git clone https://github.com/harrybrwn/apizza
cd apizza
make install

Setup

The most you have to do as a user in terms of setting up apizza is fill in the config variables. The only config variables that are mandatory are "Address" and "Service" but the other config variables contain information that the Dominos website uses.

To edit the config file, you can either use the built-in config get and config set commands (see Config) to configure apizza or you can edit the $HOME/.config/apizza/config.json file. Both of these setup methods will have the same results If you add a key-value pair to the config.json file that is not already in the file it will be overwritten the next time the program is run.

Config

For documentation on configuration and configuration fields, see documentation

The config get and config set commands can be used with one config variable at a time...

$ apizza config set email='[email protected]'
$ apizza config set name='Bob'
$ apizza config set service='Carryout'

Or they can be moved to one command like so.

$ apizza config set name=Bob email='[email protected]' service='Carryout'

Or just edit the json config file with

$ apizza config --edit

Menu

Run apizza menu to print the dominos menu.

The menu command will also give more detailed information when given arguments.

The arguments can either be a product code or a category name.

$ apizza menu pizza      # show all the pizza
$ apizza menu drinks     # show all the drinks
$ apizza menu 10SCEXTRAV # show details on 10SCEXTRAV

To see the different menu categories, use the --show-categories flag. And to view the different toppings use the --toppings flag.

Cart

To save a new order, use apizza cart new

$ apizza cart new 'testorder' --product=16SCREEN --toppings=P,C,X # pepperoni, cheese, sauce

apizza cart is the command the shows all the saved orders.

Note: Adding and removing items from the cart is a little bit weird and it will probably change in the future.

The two flags --add and --remove are intended for editing an order. They will not work if no order name is given as a command. To add a product from an order, simply give apizza cart <order> --add=<product> and to remove a product give --remove=<product>.

Editing a product's toppings a little more complicated. The --product flag is the key to editing toppings. To edit a topping, give the product that the topping belongs to to the --product flag and give the actual topping name to either --remove or --add.

$ apizza cart myorder --product=16SCREEN --add=P

This command will add pepperoni to the pizza named 16SCREEN, and...

$ apizza cart myorder --product=16SCREEN --remove=P

will remove pepperoni from the 16SCREEN item in the order named 'myorder'.

To customize toppings use the syntax <name>:<left|right|full>:<0.5|1.0|1.5|2.0> when adding a topping.

$ apizza cart myorder --product=12SCREEN --add=P:full:2 # double pepperoni

Order

To actually send an order from the cart. Use the order command.

$ apizza order myorder --cvv=000

Once the command is executed, it will prompt you asking if you are sure you want to send the order. Enter y and the order will be sent.

Tutorials

None Pizza with Left Beef

$ apizza cart new --name=leftbeef --product=12SCREEN
$ apizza cart leftbeef --remove=C --product=12SCREEN # remove cheese
$ apizza cart leftbeef --remove=X --product=12SCREEN # remove sauce
$ apizza cart leftbeef --add=B:left --product=12SCREEN # add beef to the left

The Dominos API Wrapper for Go

Docs and example code for my Dominos library.

Credit: Logo was made with Logomakr.

Similar Resources

LINE account link: Sample code for LINE account link

LINE account link: Sample code for LINE account link

LINE account link: Sample code for LINE account link This is sample code to demostration LINE chatbot account link, refer to document https://develope

Dec 11, 2021

argv - Go library to split command line string as arguments array using the bash syntax.

Argv Argv is a library for Go to split command line string into arguments array. Documentation Documentation can be found at Godoc Example func TestAr

Nov 19, 2022

CLI - A package for building command line app with go

CLI - A package for building command line app with go

Command line interface Screenshot Key features Lightweight and easy to use. Defines flag by tag, e.g. flag name(short or/and long), description, defau

Dec 23, 2022

Simple and complete API for building command line applications in Go

Simple and complete API for building command line applications in Go Module cli provides a simple, fast and complete API for building command line app

Nov 23, 2022

Golang library with POSIX-compliant command-line UI (CLI) and Hierarchical-configuration. Better substitute for stdlib flag.

Golang library with POSIX-compliant command-line UI (CLI) and Hierarchical-configuration. Better substitute for stdlib flag.

cmdr cmdr is a POSIX-compliant, command-line UI (CLI) library in Golang. It is a getopt-like parser of command-line options, be compatible with the ge

Oct 28, 2022

Automatically sets up command line flags based on struct fields and tags.

Automatically sets up command line flags based on struct fields and tags.

Commandeer Commandeer sets up command line flags based on struct fields and tags. Do you... like to develop Go apps as libraries with tiny main packag

Dec 1, 2022

A simple command line notebook for programmers

A simple command line notebook for programmers

Dnote is a simple command line notebook for programmers. It keeps you focused by providing a way of effortlessly capturing and retrieving information

Jan 2, 2023

Flag is a simple but powerful command line option parsing library for Go support infinite level subcommand

Flag Flag is a simple but powerful commandline flag parsing library for Go. Documentation Documentation can be found at Godoc Supported features bool

Sep 26, 2022
Related tags
An open-source GitLab command line tool bringing GitLab's cool features to your command line
An open-source GitLab command line tool bringing GitLab's cool features to your command line

GLab is an open source GitLab CLI tool bringing GitLab to your terminal next to where you are already working with git and your code without switching

Dec 30, 2022
A command line tool that builds and (re)starts your web application everytime you save a Go or template fileA command line tool that builds and (re)starts your web application everytime you save a Go or template file

# Fresh Fresh is a command line tool that builds and (re)starts your web application everytime you save a Go or template file. If the web framework yo

Nov 22, 2021
A command line tool to prompt for a value to be included in another command line.

readval is a command line tool which is designed for one specific purpose—to prompt for a value to be included in another command line. readval prints

Dec 22, 2021
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.

asciigraph Go package to make lightweight ASCII line graphs ╭┈╯. Installation go get github.com/guptarohit/asciigraph Usage Basic graph package main

Jan 8, 2023
git-xargs is a command-line tool (CLI) for making updates across multiple Github repositories with a single command.
git-xargs is a command-line tool (CLI) for making updates across multiple Github repositories with a single command.

Table of contents Introduction Reference Contributing Introduction Overview git-xargs is a command-line tool (CLI) for making updates across multiple

Dec 31, 2022
git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command
git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command

git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command. You give git-xargs:

Feb 5, 2022
Package command provide simple API to create modern command-line interface

Package command Package command provide simple API to create modern command-line interface, mainly for lightweight usage, inspired by cobra Usage pack

Jan 16, 2022
A command line tool for simplified docker volume command built with go

dockervol A command line tool for simplified docker volume command built with go. Features: Remove anonymous volume (beta) Remove volume by matching n

Dec 18, 2021
Watcher - A simple command line app to watch files in a directory for changes and run a command when files change!

Watcher - Develop your programs easily Watcher watches all the files present in the directory it is run from of the directory that is specified while

Mar 27, 2022
Are you programming and suddenly your stomach is rumbling? No problem, order your Ifood without leaving your favorite text editor ❤️

vim-ifood Você ta programando e de repente bateu aquela fome? Sem problemas, peça seu Ifood sem sair do seu editor de texto favorito ❤️ Are you progra

Jun 2, 2022