All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.socrata.soda2.publisher.impl.MakeWorkingCopyResponseIteratee.scala Maven / Gradle / Ivy

The newest version!
package com.socrata.soda2.publisher
package impl

import com.rojoma.json.ast.{JString, JObject, JValue}

import com.socrata.iteratee.Iteratee
import com.socrata.soda2.{InvalidResponseJsonException, MalformedResponseJsonException, Resource}

class MakeWorkingCopyResponseIteratee(op: String) extends Iteratee[JValue, Resource] {
  def process(input: JValue) = {
    val uid = for {
      obj <- input.cast[JObject]
      uidValue <- obj.get("id")
      uid <- uidValue.cast[JString]
    } yield Resource(uid.string)

    Right(uid.getOrElse {
      throw new InvalidResponseJsonException(input, "Unable to interpret response as a " + op + " response")
    })
  }

  def endOfInput() =
    throw new MalformedResponseJsonException("End of input while awaiting " + op + " response")
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy