コード例 #1
0
ファイル: app.py プロジェクト: soffokl/api
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({})
コード例 #2
0
 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)
コード例 #3
0
 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())
コード例 #4
0
 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())
コード例 #5
0
 def test_get_country_from_empty_service_proposal(self):
     node = Node("key")
     node.proposal = json.dumps({})
     self.assertIsNone(node.get_country_from_service_proposal())
コード例 #6
0
def _create_node():
    node = Node("test node")
    node.updated_at = datetime.utcnow()
    node.proposal = '{}'
    return node