diff --git a/server/src/v1/user.ts b/server/src/v1/user.ts
index 2fa51c76ca96331a1cc3224b4caf296bade1ba6a..e670ca667e1562fd2f9fc5fef0fdb98bb81ed3b8 100644
--- a/server/src/v1/user.ts
+++ b/server/src/v1/user.ts
@@ -39,6 +39,53 @@ user.get('/name/:username', async (req, res) => {
     }
 });
 
+function sendRangedData(req: Request, res: Response, data: Buffer) {
+    res.setHeader('Accept-Ranges', 'bytes');
+    const range = req.range(data.length);
+    if (typeof range === 'object' && range.type === 'bytes' && range.length === 1) {
+        res.status(206);
+        res.setHeader('Content-Range', `${range[0].start}\-${range[0].end}/${data.length}`);
+        res.send(data.slice(range[0].start, range[0].end+1));
+    } else {
+        res.status(200);
+        res.send(data);
+    }
+}
+
+user.get('/:uuid/image', async (req, res) => {
+    try {
+        const id = req.params.uuid;
+        if (validate(id)) {
+            const user = await database('users')
+                .select({
+                    image: 'users.image'
+                })
+                .where({ id: id });
+            if (user.length >= 1 && user[0].image) {
+                res.setHeader('Content-Type', 'image/png');
+                sendRangedData(req, res, user[0].image);
+            } else if (user.length >= 1) {
+                res.status(404).send();
+            } else {
+                res.status(404).json({
+                    status: 'error',
+                    message: 'user not found',
+                });
+            }
+        } else {
+            res.status(400).json({
+                status: 'error',
+                message: 'malformed uuid',
+            });
+        }
+    } catch (e) {
+        res.status(400).json({
+            status: 'error',
+            message: 'failed get user',
+        });
+    }
+});
+
 user.use(requireVerification);
 
 user.get('/', async (req, res) => {
@@ -258,49 +305,4 @@ user.get('/:uuid', async (req, res) => {
     }
 });
 
-function sendRangedData(req: Request, res: Response, data: Buffer) {
-    res.setHeader('Accept-Ranges', 'bytes');
-    const range = req.range(data.length);
-    if (typeof range === 'object' && range.type === 'bytes' && range.length === 1) {
-        res.status(206);
-        res.setHeader('Content-Range', `${range[0].start}\-${range[0].end}/${data.length}`);
-        res.send(data.slice(range[0].start, range[0].end+1));
-    } else {
-        res.status(200);
-        res.send(data);
-    }
-}
-
-user.get('/:uuid/image', async (req, res) => {
-    try {
-        const id = req.params.uuid;
-        if (validate(id)) {
-            const user = await database('users')
-                .select({
-                    image: 'users.image'
-                })
-                .where({ id: id });
-            if (user.length >= 1) {
-                res.setHeader('Content-Type', 'image/png');
-                sendRangedData(req, res, user[0].image);
-            } else {
-                res.status(404).json({
-                    status: 'error',
-                    message: 'user not found',
-                });
-            }
-        } else {
-            res.status(400).json({
-                status: 'error',
-                message: 'malformed uuid',
-            });
-        }
-    } catch (e) {
-        res.status(400).json({
-            status: 'error',
-            message: 'failed get user',
-        });
-    }
-});
-
 export default user;