def register_proposal(caller_identity): payload = request.get_json(force=True) proposal = payload.get('service_proposal', None) if proposal is None: return jsonify(error='missing service_proposal'), 400 node_key = proposal.get('provider_id', None) if node_key is None: return jsonify(error='missing provider_id'), 400 if node_key.lower() != caller_identity: message = 'provider_id does not match current identity' return jsonify(error=message), 403 node = Node.query.get(node_key) if not node: node = Node(node_key) node.ip = request.remote_addr node.proposal = json.dumps(proposal) node.mark_activity() db.session.add(node) db.session.commit() return jsonify({})
def _create_node(self, node_key): node = Node(node_key) node.proposal = json.dumps({ "id": 1, "format": "service-proposal/v1", "provider_id": node_key, }) db.session.add(node)
def test_get_country_from_service_proposal(self): node = Node("key") node.proposal = json.dumps({ "service_definition": { "location_originate": { "country": "country code" }, }, }) self.assertEqual("country code", node.get_country_from_service_proposal())
def test_get_country_from_invalid_service_proposal(self): node = Node("key") node.proposal = json.dumps({"service_definition": {}}) self.assertIsNone(node.get_country_from_service_proposal())
def test_get_country_from_empty_service_proposal(self): node = Node("key") node.proposal = json.dumps({}) self.assertIsNone(node.get_country_from_service_proposal())
def _create_node(): node = Node("test node") node.updated_at = datetime.utcnow() node.proposal = '{}' return node