Skip to content

Commit

Permalink
Merge pull request #42 from nanocom2024/add-received-beacon-own
Browse files Browse the repository at this point in the history
  • Loading branch information
hyouhyan authored Sep 15, 2024
2 parents 8c09a86 + 99c7383 commit 6e6ee71
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 27 deletions.
2 changes: 1 addition & 1 deletion server/src/Pairing/routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ def auth_check():

user = users.find_one({'token': token})
if not user:
return jsonify({'error': 'Invalid token'}), 400
return jsonify({'error': 'Invalid token'}), 401

new_token = create_access_token(identity=user['token'])
users.update_one({'token': token}, {'$set': {'token': new_token}})
Expand Down
14 changes: 9 additions & 5 deletions server/src/StreetPass/routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

# MongoDBに接続
db = DB()
users = db.users
pairings = db.pairings
pre_passes = db.pre_passes
now_passes = db.now_passes
Expand All @@ -21,17 +22,20 @@ def received_beacon():
received_minor = request.json['received_minor']
if not received_minor:
return jsonify({'error': 'Missing received_minor'}), 400
private_key = request.json['private_key']
if not private_key:
return jsonify({'error': 'Missing private_key'}), 400
token = request.json['token']
if not token:
return jsonify({'error': 'Missing token'}), 400

received_user = pairings.find_one(
{'major': received_major, 'minor': received_minor})
if not received_user:
return jsonify({'error': 'Invalid received_major_minor'}), 400
sent_user = pairings.find_one({'private_key': private_key})
sent_user = users.find_one({'token': token})
if not sent_user:
return jsonify({'error': 'Invalid private_key'}), 400
return jsonify({'error': 'Invalid token'}), 400

if received_user['uid'] == sent_user['uid']:
return jsonify({'pass': 'own'}), 200

threshold = datetime.datetime.now() - datetime.timedelta(seconds=30)
pre_passes.delete_many({'created_at': {'$lt': threshold}})
Expand Down
2 changes: 1 addition & 1 deletion server/tests/test_pairing.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ def test_auth_check_invalid_token(baseurl):
res = requests.post(url, json={
'token': 'invalidToken'
})
assert res.status_code == 400
assert res.status_code == 401
assert res.json()['error'] == 'Invalid token'


Expand Down
46 changes: 26 additions & 20 deletions server/tests/test_streetpass.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,95 +120,90 @@ def test_pairing_success(baseurl):


def test_received_beacon_missing_received_major(baseurl):
global private_key1
url = baseurl+'/streetpass/received_beacon'
res = requests.post(url, json={
'received_major': '',
'received_minor': minor1,
'private_key': private_key1
'token': token1
})
assert res.status_code == 400
assert res.json()['error'] == 'Missing received_major'


def test_received_beacon_missing_received_minor(baseurl):
global private_key1
url = baseurl+'/streetpass/received_beacon'
res = requests.post(url, json={
'received_major': major1,
'received_minor': '',
'private_key': private_key1
'token': token1
})
assert res.status_code == 400
assert res.json()['error'] == 'Missing received_minor'


def test_received_beacon_missing_private_key(baseurl):
def test_received_beacon_missing_token(baseurl):
url = baseurl+'/streetpass/received_beacon'
res = requests.post(url, json={
'received_major': major1,
'received_minor': minor1,
'private_key': ''
'token': ''
})
assert res.status_code == 400
assert res.json()['error'] == 'Missing private_key'
assert res.json()['error'] == 'Missing token'


def test_received_beacon_invalid_received_major_minor(baseurl):
global private_key1
url = baseurl+'/streetpass/received_beacon'
res = requests.post(url, json={
'received_major': major1,
'received_minor': 'invalidMinor',
'private_key': private_key1
'token': token1
})
assert res.status_code == 400
assert res.json()['error'] == 'Invalid received_major_minor'

res = requests.post(url, json={
'received_major': 'invalidMajor',
'received_minor': minor1,
'private_key': private_key1
'token': token1
})
assert res.status_code == 400
assert res.json()['error'] == 'Invalid received_major_minor'


def test_received_beacon_invalid_private_key(baseurl):
def test_received_beacon_invalid_token(baseurl):
url = baseurl+'/streetpass/received_beacon'
res = requests.post(url, json={
'received_major': major1,
'received_minor': minor1,
'private_key': 'invalidPrivateKey'
'token': 'invalidToken'
})
assert res.status_code == 400
assert res.json()['error'] == 'Invalid private_key'
assert res.json()['error'] == 'Invalid token'


def test_received_beacon_enable_success(baseurl):
global private_key1
url = baseurl+'/streetpass/received_beacon'
res = requests.post(url, json={
'received_major': major2,
'received_minor': minor2,
'private_key': private_key1
'token': token1
})
assert res.status_code == 200
assert res.json()['pass'] == 'false'

global private_key2
res = requests.post(url, json={
'received_major': major1,
'received_minor': minor1,
'private_key': private_key2
'token': token2
})
assert res.status_code == 200
assert res.json()['pass'] == 'true'


def test_received_beacon_disable_success(baseurl):
global token1, private_key1
global token2, private_key2
global token1
global token2
client = MongoClient('localhost', 27017)
db = client['db']
users = db['users']
Expand All @@ -227,12 +222,23 @@ def test_received_beacon_disable_success(baseurl):
res = requests.post(url, json={
'received_major': major2,
'received_minor': minor2,
'private_key': private_key1
'token': token1
})
assert res.status_code == 200
assert res.json()['pass'] == 'false'


def test_received_beacon_own_success(baseurl):
url = baseurl+'/streetpass/received_beacon'
res = requests.post(url, json={
'received_major': major1,
'received_minor': minor1,
'token': token1
})
assert res.status_code == 200
assert res.json()['pass'] == 'own'


def test_done():
global token1, device_uid1, email1
global token2, device_uid2, email2
Expand Down

0 comments on commit 6e6ee71

Please sign in to comment.