from web.responder import Html from web.auth import SimpleAuth from db.mongodb.connection import Connection from sweetscomplete.domain.customer import CustomerService from sweetscomplete.entity.customer import Customer from sweetscomplete.domain.product import ProductService from sweetscomplete.entity.product import Product from sweetscomplete.entity.product_purchased import ProductPurchased from sweetscomplete.domain.purchase import PurchaseService from sweetscomplete.entity.purchase import Purchase # create CustomerService instance cust_conn = Connection('localhost', 27017, Customer) cust_service = CustomerService(cust_conn, 'sweetscomplete') prod_conn = Connection('localhost', 27017, Product) prod_service = ProductService(prod_conn, 'sweetscomplete') purch_conn = Connection('localhost', 27017, Purchase) purch_service = PurchaseService(purch_conn, 'sweetscomplete') # init vars sess_storage = os.path.realpath("../data") auth = SimpleAuth(cust_service, sess_storage) cust = auth.getIdentity() html_out = Html('templates/purchase.html') # go to login page if not authenticated if not cust: print("Location: /chapter_05/index.py\r\n") print() quit()
# sweetscomplete.entity.product.Product read/add/edit/delete # tell python where to find module source code import os,sys sys.path.append(os.path.realpath("src")) import pprint import db.mongodb.connection from datetime import date from sweetscomplete.entity.product import Product from sweetscomplete.domain.product import ProductService # setting up the connection + collection conn = db.mongodb.connection.Connection('localhost',27017,Product) service = ProductService(conn, 'sweetscomplete') # initialize test data key = '00000000' doc = '''\ { "productKey" : "%key%", "productPhoto": "TEST", "skuNumber" : "TEST0000", "category" : "test", "title" : "Test", "description" : "test", "price" : 1.11, "unit" : "test", "costPerUnit" : 2.22, "unitsOnHand" : 333
# sweetscomplete.entity.product.Product read/add/edit/delete # tell python where to find module source code import os, sys sys.path.append(os.path.realpath("src")) import pprint import db.mongodb.connection from datetime import date from sweetscomplete.entity.product import Product from sweetscomplete.domain.product import ProductService # setting up the connection + collection conn = db.mongodb.connection.Connection() service = ProductService(conn, 'sweetscomplete') # initialize test data key = 'test' + date.today().isoformat().replace('-', '') doc = '''\ { "productKey":"%key%", "productPhoto":"TEST", "MainProductInfo": { "skuNumber":"TEST0000", "category":"test", "title":"Test", "description":"test", "price":"1.11" }, "InventoryInfo" : {
cgitb.enable(display=1, logdir='../data') # custom imports from web.responder import Html from web.auth import SimpleAuth from db.mongodb.connection import Connection from sweetscomplete.domain.customer import CustomerService from sweetscomplete.entity.customer import Customer from sweetscomplete.domain.product import ProductService from sweetscomplete.entity.product import Product # create CustomerService instance cust_conn = Connection('localhost', 27017, Customer) cust_service = CustomerService(cust_conn, 'sweetscomplete') prod_conn = Connection('localhost', 27017, Product) prod_service = ProductService(prod_conn, 'sweetscomplete') # init vars sess_storage = os.path.realpath("../data") auth = SimpleAuth(cust_service, sess_storage) html_out = Html('templates/select.html') html_out.addInsert('%message%', '<br>') # output cust = auth.getIdentity() if cust : # display customer name html_out.addInsert('%name%', cust.getFullName()) # add products to dropdown keysAndTitles = prod_service.fetchAllKeysAndTitlesForSelect() # limit purchases to 6 line items
# enable error display import cgitb cgitb.enable(display=1, logdir='../data') # custom imports from config.config import Config from web.responder.html import HtmlResponder from db.mongodb.connection import Connection from sweetscomplete.domain.product import ProductService from sweetscomplete.entity.product import Product # create CustomerService instance config = Config() db_config = config.getConfig('db') prod_conn = Connection(db_config['host'], db_config['port'], Product) prod_service = ProductService(prod_conn, db_config['database']) # HTML output message = 'SORRY! Unable to find information on this product' response = HtmlResponder('templates/details.html') # check for form posting import cgi form = cgi.FieldStorage() if 'product' in form: # get product key key = form['product'].value # lookup product
from config.config import Config from web.responder.html import HtmlResponder from web.auth import SimpleAuth from db.mongodb.connection import Connection from sweetscomplete.domain.customer import CustomerService from sweetscomplete.entity.customer import Customer from sweetscomplete.domain.product import ProductService from sweetscomplete.entity.product import Product # create CustomerService instance config = Config() db_config = config.getConfig('db') cust_conn = Connection(db_config['host'], db_config['port'], Customer) cust_service = CustomerService(cust_conn, db_config['database']) prod_conn = Connection(db_config['host'], db_config['port'], Product) prod_service = ProductService(prod_conn, db_config['database']) # init vars auth = SimpleAuth(cust_service, config.getConfig('session_storage')) cust = auth.getIdentity() # HTML output response = HtmlResponder('templates/select.html') response.addInsert('%message%', '<br>') response.addInsert('%ajax_url%', config.getConfig('ajax_url')) # output if cust : # display customer name response.addInsert('%name%', cust.getFullName()) else :
src_path = os.path.realpath('../../chapters/06/src') sys.path.append(src_path) # custom imports import cgi from config.config import Config from web.responder.rest import RestResponder from db.mongodb.connection import Connection from sweetscomplete.domain.product import ProductService from sweetscomplete.entity.product import Product # create CustomerService instance config = Config() db_config = config.getConfig('db') prod_conn = Connection(db_config['host'], db_config['port'], Product) prod_service = ProductService(prod_conn, db_config['database']) # grab request info data = None error = None link = '/' status = 200 params = cgi.FieldStorage() # determine request method if 'REQUEST_METHOD' in os.environ: method = os.environ['REQUEST_METHOD'] if method == 'GET': # look for product key if 'key' in params: data = prod_service.fetchOneKeyCategoryTitlePriceForRest(
#!/usr/bin/python # tell python where to find source code import os, sys src_path = os.path.realpath('../../chapters/06/src') sys.path.append(src_path) # custom imports from config.config import Config from web.responder.json import JsonResponder from web.auth import SimpleAuth from db.mongodb.connection import Connection from sweetscomplete.domain.product import ProductService from sweetscomplete.entity.product import Product # create CustomerService instance config = Config() db_config = config.getConfig('db') prod_conn = Connection(db_config['host'], db_config['port'], Product) prod_service = ProductService(prod_conn, db_config['database']) # JSON output response = JsonResponder() data = prod_service.fetchAllKeysTitlesPricesForAjax() response.addProductKeyTitlePrice('data', data) print(response.render())