prolog-point-of-sale/main.pl

56 lines
1.4 KiB
Prolog

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