Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- post {
- formFields('albumId, 'fileName, 'file.as[Array[Byte]]) { (albumId, fileName, bytes) =>
- val cdnBaseUrl = config.getString("niniprint.cdn.url")
- def uploadPhoto(ext: String) = {
- val photoId = BSONObjectID.generate
- val photoPath = s"$albumId/${photoId.stringify}.$ext"
- val photo = Photo(fileName, photoPath)
- s3.upload(s"$photoPath", bytes)
- query(albums.addPhotoToAlbum(BSONObjectID(albumId), photo)) { lastError =>
- complete(200, s"$cdnBaseUrl/$photoPath")
- } { error =>
- reject(DatabaseRejection("Photo upload error", error.lastError))
- }
- }
- fileName.split('.').drop(1).map(_.toLowerCase).lastOption match {
- case Some("jpg") | Some("jpeg") => uploadPhoto("jpg")
- case Some("png") => uploadPhoto("png")
- case Some("gif") => uploadPhoto("gif")
- case ext => complete(400, "Image file not valid, only JPEG, PNG and GIF image formats are supported")
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement