prolog-point-of-sale/main.pl

57 lines
1.4 KiB
Perl
Raw Normal View History

2019-11-03 01:05:33 +00:00
:- use_module(library(http/html_head)).
:- use_module(library(http/html_write)).
2019-10-31 23:20:18 +00:00
:- use_module(library(http/http_client)).
2019-11-01 00:13:23 +00:00
:- use_module(library(http/http_header)).
2019-11-03 01:05:33 +00:00
:- use_module(library(http/http_json)).
:- use_module(library(http/http_server)).
:- use_module(library(http/http_session)).
:- use_module(library(http/js_write)).
2019-10-31 23:20:18 +00:00
:- use_module(library(http/json)).
2019-11-03 01:05:33 +00:00
:- use_module(library(http/json_convert)).
2019-10-31 23:20:18 +00:00
:- use_module(library(persistency)).
2019-11-03 01:05:33 +00:00
:- consult('routes/products.pl').
:- consult('routes/login.pl').
:- consult('routes/users.pl').
:- consult('routes/cart.pl').
:- consult('views/products.pl').
:- consult('views/login.pl').
2019-10-31 23:20:18 +00:00
:- initialization
http_server([port(8080)]).
:- initialization
absolute_file_name('database.db', File, [access(write)]),
2019-11-03 01:05:33 +00:00
db_attach(File, []),
db_sync_all(gc(always)).
2019-10-31 23:20:18 +00:00
:- json_object
product(name:atom, price:integer).
:- persistent
product(name:atom, price:integer).
2019-11-01 00:13:23 +00:00
:- json_object
login(username:atom, password:atom).
:- json_object
2019-11-01 00:48:35 +00:00
user(username:atom).
2019-11-01 00:13:23 +00:00
:- persistent
user(username:atom, password_hash:atom).
:- json_object
token(username:atom, token:atom).
:- persistent
token(username:atom, token:atom).
2019-11-03 01:05:33 +00:00
:- persistent
session(session:atom, username:atom).
:- persistent
cart_entry(session:atom, items:atom).
2019-11-01 00:13:23 +00:00
:- json_object
error(error:atom).
2019-11-03 01:05:33 +00:00
reply_prolog(Term) :-
prolog_to_json(Term, Json),
reply_json(Json).