def uploadAvatar()

in api/src/main/scala/com/gu/adapters/http/AvatarServlet.scala [241:262]


  def uploadAvatar(request: RichRequest, user: User, fileParams: FileSingleParams): Either[Error, CreatedAvatar] = {
    request.contentType match {
      case Some("application/json") | Some("text/json") =>
        for {
          req <- avatarRequestFromBody(request.body)
          bytesAndMimeType <- getImageFromUrl(req.url)
          (bytes, mimeType) = bytesAndMimeType
          upload <- store.userUpload(user, bytes, mimeType, req.url, req.isSocial)
        } yield upload
      case Some(s) if s startsWith "multipart/form-data" =>
        for {
          bytesAndMimeTypeAndFname <- getImageFromFile(fileParams)
          (bytes, mimeType, fname) = bytesAndMimeTypeAndFname
          isSocial <- getIsSocial(request.parameters.get("isSocial"))
          upload <- store.userUpload(user, bytes, mimeType, fname, isSocial)
        } yield upload
      case Some(invalid) =>
        Left(invalidContentType(List(s"'$invalid' is not a valid content type.")))
      case None =>
        Left(invalidContentType(List("No content type specified.")))
    }
  }