Skip to main content
Retrieve all photos in the user’s gallery.

Endpoint

Headers

This endpoint requires glasses authentication, not regular user authentication.

Response

Success (200):
Error (500):

Implementation

  • File: packages/cloud/src/routes/gallery.routes.ts:19-37
  • Middleware: validateGlassesAuth
  • Service: Uses GalleryPhoto.findByUserId() with email from decoded token
Delete a specific photo from the user’s gallery.

Endpoint

Headers

Parameters

Response

Success (200):
Error (403):
Error (404):
Error (500):

Implementation

  • File: packages/cloud/src/routes/gallery.routes.ts:44-88
  • Authorization: Checks that the user owns the photo
  • Cleanup: Attempts to delete physical file (non-critical)

Deletion Process

  1. Validates user authentication
  2. Verifies photo exists and user owns it
  3. Deletes photo record from database
  4. Attempts to delete physical file from uploads directory (if exists)
There’s an inconsistency in the code: The GET endpoint uses decodedToken.email while the DELETE endpoint uses decodedToken.userId. This should be standardized to use the same field.

Error Codes

Data Model

Gallery photos contain:
  • _id: Unique photo identifier
  • userId: Owner’s user ID
  • userEmail: Owner’s email address
  • filename: Generated filename
  • uploadedAt: Upload timestamp
  • size: File size in bytes
  • mimeType: Image MIME type
  • metadata: Additional photo metadata including:
    • requestId: The original photo request ID
    • origin: Source of the photo (e.g., “app”)
    • packageName: App that requested the photo

Notes

  • Gallery photos are stored in MongoDB using the GalleryPhoto model
  • Physical files are stored in the uploads directory
  • File deletion failures are logged but don’t fail the API request
  • All endpoints require glasses authentication (not regular user authentication)
  • Photos are associated with users by their email address