Skip to content

Commit 2d65b58

Browse files
authored
Separating some methods into more routes
The repository handling contained a bit too much logic for my liking. Added more routes to clean things up.
1 parent 0240eb9 commit 2d65b58

File tree

1 file changed

+49
-33
lines changed

1 file changed

+49
-33
lines changed

app.py

Lines changed: 49 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -108,47 +108,63 @@ async def user_handler(req, user_id):
108108
#if req.method == 'GET':
109109
raise exc.NotFound("Soon™")
110110

111-
@app.route('/api/repo', methods=['POST'])
112-
async def new_repo_handler(req):
111+
# Create new repo
112+
@app.route('/api/repositories', methods=['POST'])
113+
async def create_repo(req):
113114
"""TODO New repo"""
114115
raise exc.NotFound("Soon™")
115116

116-
# Existing repo
117-
@app.route('/api/repo/<repo_id:int>', methods=['GET', 'POST', 'DELETE'])
118-
async def repo_handler(req, repo_id):
117+
# Get repo
118+
@app.route('/api/repositories/<repo_id:int>', methods=['GET'])
119+
async def get_repo(req, repo_id):
119120
"""Handles requests for existing repositories"""
120121
if not repo_id:
121122
raise exc.InvalidUsage("Bad request")
123+
124+
repo = await db['repos'].find_one({ "_id": repo_id })
125+
if not repo:
126+
raise exc.NotFound("Resource not found")
122127

123-
# Get repository
124-
if req.method == 'GET':
125-
# TODO auth check
126-
127-
repo = await db['repos'].find_one({ "_id": repo_id })
128-
if not repo:
129-
raise exc.NotFound("Resource not found")
130-
131-
# Temporary confirmation
132-
return res.json({ "message": f"You've requested repository ID {repo_id}" })
133-
134-
# Update repository
135-
elif req.method == 'POST':
136-
repo = await db['repos'].find_one({ "_id": repo_id })
137-
if not repo:
138-
raise exc.Forbidden("Repository doesn't exist")
139-
else:
140-
# TODO Update repo
141-
pass
142-
143-
# Delete repository
144-
elif req.method == 'DELETE':
145-
repo = await db['repos'].find_one({ "_id": repo_id })
146-
if not repo:
147-
raise exc.Forbidden("Repository doesn't exist")
148-
else:
149-
return res.json({ "message": "testing" })
128+
# Temporary confirmation
129+
return res.json({ "message": f"You've requested repository ID {repo_id}" })
130+
131+
# Update repo
132+
@app.route('/api/repositories/<repo_id:int>/update', methods=['POST'])
133+
async def update_repo(req, repo_id):
134+
if not repo_id:
135+
raise exc.InvalidUsage("Bad request")
136+
137+
# TODO auth check
138+
139+
repo = await db['repos'].find_one({ "_id": repo_id })
140+
if not repo:
141+
raise exc.Forbidden("Repository doesn't exist")
142+
else:
143+
# TODO Update repo
144+
pass
145+
146+
# Temporary
147+
return res.json({ "message": "TODO" })
148+
149+
# Delete repo
150+
@app.route('/api/repositories/<repo_id:int>/delete', methods=['DELETE'])
151+
async def delete_repo(req, repo_id):
152+
if not repo_id:
153+
raise exc.InvalidUsage("Bad request")
154+
155+
# TODO auth check
156+
157+
repo = await db['repos'].find_one({ "_id": repo_id })
158+
if not repo:
159+
raise exc.Forbidden("Repository doesn't exist")
160+
else:
161+
# TODO delete repo
162+
pass
163+
164+
# Temporary
165+
return res.json({ "message": "TODO" })
150166

151167
@app.exception(exc.SanicException)
152168
def errors(request, exception):
153169
"""Handles errors"""
154-
return res.json({ "error": exception.args[0], "status": exception.status_code })
170+
return res.json({ "error": exception.args[0], "status": exception.status_code })

0 commit comments

Comments
 (0)