[hub]  make get_items generic, add legacy.py
diff --git a/erpnext/hub_node/api.py b/erpnext/hub_node/api.py
index a1d9e8a..559e22a 100644
--- a/erpnext/hub_node/api.py
+++ b/erpnext/hub_node/api.py
@@ -17,8 +17,6 @@
 	response = connection.post_request(params)
 	return response
 
-
-#### LOCAL ITEMS
 @frappe.whitelist()
 def get_valid_items(search_value=''):
 	items = frappe.get_list(
@@ -58,10 +56,6 @@
 		frappe.throw(e)
 
 def item_sync_preprocess():
-	# Call Hub to make a new activity
-	# and return an activity ID
-	# that will be used as the remote ID for the Migration Run
-
 	hub_seller = frappe.db.get_value("Hub Settings", "Hub Settings", "company_email")
 
 	response = call_hub_method('add_hub_seller_activity', {
@@ -104,182 +98,3 @@
 	# read-only connection
 	hub_connection = FrappeClient(frappe.conf.hub_url)
 	return hub_connection
-
-
-
-# Legacy functionality
-# =============================================================================
-
-@frappe.whitelist()
-def get_item_favourites(start=0, limit=20, fields=["*"], order_by=None):
-	doctype = 'Hub Item'
-	hub_settings = frappe.get_doc('Hub Settings')
-	item_names_str = hub_settings.get('custom_data') or '[]'
-	item_names = json.loads(item_names_str)
-	filters = json.dumps({
-		'hub_item_code': ['in', item_names]
-	})
-	return get_list(doctype, start, limit, fields, filters, order_by)
-
-@frappe.whitelist()
-def update_wishlist_item(item_name, remove=0):
-	remove = int(remove)
-	hub_settings = frappe.get_doc('Hub Settings')
-	data = hub_settings.get('custom_data')
-	if not data or not json.loads(data):
-		data = '[]'
-		hub_settings.custom_data = data
-		hub_settings.save()
-
-	item_names_str = data
-	item_names = json.loads(item_names_str)
-	if not remove and item_name not in item_names:
-		item_names.append(item_name)
-	if remove and item_name in item_names:
-		item_names.remove(item_name)
-
-	item_names_str = json.dumps(item_names)
-
-	hub_settings.custom_data = item_names_str
-	hub_settings.save()
-
-@frappe.whitelist()
-def update_category(hub_item_code, category):
-	connection = get_hub_connection()
-
-	# args = frappe._dict(dict(
-	# 	doctype='Hub Category',
-	# 	hub_category_name=category
-	# ))
-	# response = connection.insert('Hub Category', args)
-
-	response = connection.update('Hub Item', frappe._dict(dict(
-		doctype='Hub Item',
-		hub_category = category
-	)), hub_item_code)
-
-	return response
-
-def make_opportunity(buyer_name, email_id):
-	buyer_name = "HUB-" + buyer_name
-
-	if not frappe.db.exists('Lead', {'email_id': email_id}):
-		lead = frappe.new_doc("Lead")
-		lead.lead_name = buyer_name
-		lead.email_id = email_id
-		lead.save(ignore_permissions=True)
-
-	o = frappe.new_doc("Opportunity")
-	o.enquiry_from = "Lead"
-	o.lead = frappe.get_all("Lead", filters={"email_id": email_id}, fields = ["name"])[0]["name"]
-	o.save(ignore_permissions=True)
-
-@frappe.whitelist()
-def make_rfq_and_send_opportunity(item, supplier):
-	supplier = make_supplier(supplier)
-	contact = make_contact(supplier)
-	item = make_item(item)
-	rfq = make_rfq(item, supplier, contact)
-	status = send_opportunity(contact)
-
-	return {
-		'rfq': rfq,
-		'hub_document_created': status
-	}
-
-def make_supplier(supplier):
-	# make supplier if not already exists
-	supplier = frappe._dict(json.loads(supplier))
-
-	if not frappe.db.exists('Supplier', {'supplier_name': supplier.supplier_name}):
-		supplier_doc = frappe.get_doc({
-			'doctype': 'Supplier',
-			'supplier_name': supplier.supplier_name,
-			'supplier_group': supplier.supplier_group,
-			'supplier_email': supplier.supplier_email
-		}).insert()
-	else:
-		supplier_doc = frappe.get_doc('Supplier', supplier.supplier_name)
-
-	return supplier_doc
-
-def make_contact(supplier):
-	contact_name = get_default_contact('Supplier', supplier.supplier_name)
-	# make contact if not already exists
-	if not contact_name:
-		contact = frappe.get_doc({
-			'doctype': 'Contact',
-			'first_name': supplier.supplier_name,
-			'email_id': supplier.supplier_email,
-			'is_primary_contact': 1,
-			'links': [
-				{'link_doctype': 'Supplier', 'link_name': supplier.supplier_name}
-			]
-		}).insert()
-	else:
-		contact = frappe.get_doc('Contact', contact_name)
-
-	return contact
-
-def make_item(item):
-	# make item if not already exists
-	item = frappe._dict(json.loads(item))
-
-	if not frappe.db.exists('Item', {'item_code': item.item_code}):
-		item_doc = frappe.get_doc({
-			'doctype': 'Item',
-			'item_code': item.item_code,
-			'item_group': item.item_group,
-			'is_item_from_hub': 1
-		}).insert()
-	else:
-		item_doc = frappe.get_doc('Item', item.item_code)
-
-	return item_doc
-
-def make_rfq(item, supplier, contact):
-	# make rfq
-	rfq = frappe.get_doc({
-		'doctype': 'Request for Quotation',
-		'transaction_date': nowdate(),
-		'status': 'Draft',
-		'company': frappe.db.get_single_value('Hub Settings', 'company'),
-		'message_for_supplier': 'Please supply the specified items at the best possible rates',
-		'suppliers': [
-			{ 'supplier': supplier.name, 'contact': contact.name }
-		],
-		'items': [
-			{
-				'item_code': item.item_code,
-				'qty': 1,
-				'schedule_date': nowdate(),
-				'warehouse': item.default_warehouse or get_root_of("Warehouse"),
-				'description': item.description,
-				'uom': item.stock_uom
-			}
-		]
-	}).insert()
-
-	rfq.save()
-	rfq.submit()
-	return rfq
-
-def send_opportunity(contact):
-	# Make Hub Message on Hub with lead data
-	doc = {
-		'doctype': 'Lead',
-		'lead_name': frappe.db.get_single_value('Hub Settings', 'company'),
-		'email_id': frappe.db.get_single_value('Hub Settings', 'user')
-	}
-
-	args = frappe._dict(dict(
-		doctype='Hub Message',
-		reference_doctype='Lead',
-		data=json.dumps(doc),
-		user=contact.email_id
-	))
-
-	connection = get_hub_connection()
-	response = connection.insert('Hub Message', args)
-
-	return response.ok
diff --git a/erpnext/hub_node/legacy.py b/erpnext/hub_node/legacy.py
new file mode 100644
index 0000000..87d4e1b
--- /dev/null
+++ b/erpnext/hub_node/legacy.py
@@ -0,0 +1,178 @@
+from __future__ import unicode_literals
+import frappe, requests, json
+from frappe.utils import now, nowdate
+from frappe.frappeclient import FrappeClient
+
+@frappe.whitelist()
+def get_item_favourites(start=0, limit=20, fields=["*"], order_by=None):
+	doctype = 'Hub Item'
+	hub_settings = frappe.get_doc('Hub Settings')
+	item_names_str = hub_settings.get('custom_data') or '[]'
+	item_names = json.loads(item_names_str)
+	filters = json.dumps({
+		'hub_item_code': ['in', item_names]
+	})
+	return get_list(doctype, start, limit, fields, filters, order_by)
+
+@frappe.whitelist()
+def update_wishlist_item(item_name, remove=0):
+	remove = int(remove)
+	hub_settings = frappe.get_doc('Hub Settings')
+	data = hub_settings.get('custom_data')
+	if not data or not json.loads(data):
+		data = '[]'
+		hub_settings.custom_data = data
+		hub_settings.save()
+
+	item_names_str = data
+	item_names = json.loads(item_names_str)
+	if not remove and item_name not in item_names:
+		item_names.append(item_name)
+	if remove and item_name in item_names:
+		item_names.remove(item_name)
+
+	item_names_str = json.dumps(item_names)
+
+	hub_settings.custom_data = item_names_str
+	hub_settings.save()
+
+@frappe.whitelist()
+def update_category(hub_item_code, category):
+	connection = get_hub_connection()
+
+	# args = frappe._dict(dict(
+	# 	doctype='Hub Category',
+	# 	hub_category_name=category
+	# ))
+	# response = connection.insert('Hub Category', args)
+
+	response = connection.update('Hub Item', frappe._dict(dict(
+		doctype='Hub Item',
+		hub_category = category
+	)), hub_item_code)
+
+	return response
+
+def make_opportunity(buyer_name, email_id):
+	buyer_name = "HUB-" + buyer_name
+
+	if not frappe.db.exists('Lead', {'email_id': email_id}):
+		lead = frappe.new_doc("Lead")
+		lead.lead_name = buyer_name
+		lead.email_id = email_id
+		lead.save(ignore_permissions=True)
+
+	o = frappe.new_doc("Opportunity")
+	o.enquiry_from = "Lead"
+	o.lead = frappe.get_all("Lead", filters={"email_id": email_id}, fields = ["name"])[0]["name"]
+	o.save(ignore_permissions=True)
+
+@frappe.whitelist()
+def make_rfq_and_send_opportunity(item, supplier):
+	supplier = make_supplier(supplier)
+	contact = make_contact(supplier)
+	item = make_item(item)
+	rfq = make_rfq(item, supplier, contact)
+	status = send_opportunity(contact)
+
+	return {
+		'rfq': rfq,
+		'hub_document_created': status
+	}
+
+def make_supplier(supplier):
+	# make supplier if not already exists
+	supplier = frappe._dict(json.loads(supplier))
+
+	if not frappe.db.exists('Supplier', {'supplier_name': supplier.supplier_name}):
+		supplier_doc = frappe.get_doc({
+			'doctype': 'Supplier',
+			'supplier_name': supplier.supplier_name,
+			'supplier_group': supplier.supplier_group,
+			'supplier_email': supplier.supplier_email
+		}).insert()
+	else:
+		supplier_doc = frappe.get_doc('Supplier', supplier.supplier_name)
+
+	return supplier_doc
+
+def make_contact(supplier):
+	contact_name = get_default_contact('Supplier', supplier.supplier_name)
+	# make contact if not already exists
+	if not contact_name:
+		contact = frappe.get_doc({
+			'doctype': 'Contact',
+			'first_name': supplier.supplier_name,
+			'email_id': supplier.supplier_email,
+			'is_primary_contact': 1,
+			'links': [
+				{'link_doctype': 'Supplier', 'link_name': supplier.supplier_name}
+			]
+		}).insert()
+	else:
+		contact = frappe.get_doc('Contact', contact_name)
+
+	return contact
+
+def make_item(item):
+	# make item if not already exists
+	item = frappe._dict(json.loads(item))
+
+	if not frappe.db.exists('Item', {'item_code': item.item_code}):
+		item_doc = frappe.get_doc({
+			'doctype': 'Item',
+			'item_code': item.item_code,
+			'item_group': item.item_group,
+			'is_item_from_hub': 1
+		}).insert()
+	else:
+		item_doc = frappe.get_doc('Item', item.item_code)
+
+	return item_doc
+
+def make_rfq(item, supplier, contact):
+	# make rfq
+	rfq = frappe.get_doc({
+		'doctype': 'Request for Quotation',
+		'transaction_date': nowdate(),
+		'status': 'Draft',
+		'company': frappe.db.get_single_value('Hub Settings', 'company'),
+		'message_for_supplier': 'Please supply the specified items at the best possible rates',
+		'suppliers': [
+			{ 'supplier': supplier.name, 'contact': contact.name }
+		],
+		'items': [
+			{
+				'item_code': item.item_code,
+				'qty': 1,
+				'schedule_date': nowdate(),
+				'warehouse': item.default_warehouse or get_root_of("Warehouse"),
+				'description': item.description,
+				'uom': item.stock_uom
+			}
+		]
+	}).insert()
+
+	rfq.save()
+	rfq.submit()
+	return rfq
+
+def send_opportunity(contact):
+	# Make Hub Message on Hub with lead data
+	doc = {
+		'doctype': 'Lead',
+		'lead_name': frappe.db.get_single_value('Hub Settings', 'company'),
+		'email_id': frappe.db.get_single_value('Hub Settings', 'user')
+	}
+
+	args = frappe._dict(dict(
+		doctype='Hub Message',
+		reference_doctype='Lead',
+		data=json.dumps(doc),
+		user=contact.email_id
+	))
+
+	connection = get_hub_connection()
+	response = connection.insert('Hub Message', args)
+
+	return response.ok
diff --git a/erpnext/public/js/hub/pages/item.js b/erpnext/public/js/hub/pages/item.js
index 559a4d6..609479b 100644
--- a/erpnext/public/js/hub/pages/item.js
+++ b/erpnext/public/js/hub/pages/item.js
@@ -41,7 +41,10 @@
 	}
 
 	get_item(hub_item_code) {
-		return hub.call('get_item_details', { hub_item_code });
+		return hub.call('get_item_details', {
+			hub_seller: hub.settings.company_email,
+			hub_item_code
+		});
 	}
 
 	render(item) {
@@ -313,4 +316,4 @@
 			</div>
 		</div>`;
 	}
-}
\ No newline at end of file
+}
diff --git a/erpnext/public/js/hub/pages/published_products.js b/erpnext/public/js/hub/pages/published_products.js
index 11cce4d..1b19a51 100644
--- a/erpnext/public/js/hub/pages/published_products.js
+++ b/erpnext/public/js/hub/pages/published_products.js
@@ -18,6 +18,6 @@
 	}
 
 	get_published_products() {
-		return hub.call('get_items_by_seller', { hub_seller: hub.settings.company_email });
+		return hub.call('get_items', { hub_seller: hub.settings.company_email });
 	}
-}
\ No newline at end of file
+}
diff --git a/erpnext/public/js/hub/pages/search.js b/erpnext/public/js/hub/pages/search.js
index dbaecba..33c2b78 100644
--- a/erpnext/public/js/hub/pages/search.js
+++ b/erpnext/public/js/hub/pages/search.js
@@ -22,7 +22,7 @@
 	}
 
 	get_items_by_keyword(keyword) {
-		return hub.call('get_items_by_keyword', { keyword });
+		return hub.call('get_items', { keyword });
 	}
 
 	render(items) {
@@ -31,4 +31,4 @@
 		const html = get_item_card_container_html(items, title);
 		this.$wrapper.append(html);
 	}
-}
\ No newline at end of file
+}