Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
    Hi here
    what would be the best way to compose two operations in scanamo
    for {
      maybeErrorOrOrderItem ← MojoTable.OrderItems.dynamoTable
        .get(UniqueKey(KeyEquals(AttributeName.of("id"), id)))
      maybeErrorOrProduct ← MojoTable.Products.dynamoTable
        .get(UniqueKey(KeyEquals(AttributeName.of("id"), oi.product_id))) // need to extract product id from maybeErrorOrOrderItem
    } yield (maybeErrorOrProduct)
    something like this
    i never used Free before
    and return type ption[Either[Throwable,T]] is confusing me

    Hi there. Just trying this out today and

        val client = LocalDynamoDB.client()
        import com.amazonaws.services.dynamodbv2.model.ScalarAttributeType._
        val xx = LocalDynamoDB.createTable(client)("muppets")('name -> S)
        logger.info(s"Create: $xx")

    I just never see the logger info. It fails with : com.amazonaws.SdkClientException: Unable to execute HTTP request: Connect to localhost:8042 [localhost/] failed: Connection refused (Connection refused) I assume I should be running something in that port, what would that be?

    Thanks :D
    implicit val stringFormat: DynamoFormat[String] = new DynamoFormat[String] {
        final def read(av: DynamoValue) =
            if (av.isNull)
                av.asString.fold[Either[DynamoReadError, String]](Left(NoPropertyOfType("S", av)))(Right(_))
    shouldn't it be DynamoReadError if field is missing
    Roman Makurin
    hi guys, im wondering, is it possible to get paged queries for secondary indexes?
    Markus Appel
    I am getting the following error:
    ExpressionAttributeNames contains invalid key: Syntax error; key: "#equalsConditionwork-stream" (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: 46FJK8FPVL1CSMDD859ERMS5G7VV4KQNSO5AEMVJF66Q9ASUAAJG)
    I filter and scan using scanamo-cats, like this:
        val client = ScanamoCats[IO](AmazonDynamoDBAsyncClientBuilder.defaultClient())
        val evaluations: Table[EvaluationJson] = Table[EvaluationJson]("Evaluation")
        def findOps(workstream: Workstream, search: Option[String]) = evaluations
            .filter("work-stream" -> workstream.entryName)
        def find(workstream: Workstream, search: Option[String]): IO[List[EvaluationJson]] = client
            .exec(findOps(workstream, search))
            .flatMap { list =>
                if (list.exists(_.isLeft)) IO.raiseError(new Exception(list.flatMap(_.left.toOption).map(_.toString).reduce((l, r) => l + "; " + r)))
                else IO(list.flatMap(_.toOption))
    When I query for a key without - it works
    Also, why are two sequential .filter operations different in terms of type signature?
    Markus Appel
    And when I try to use
    def findOps(workstream: Workstream, search: Option[String]) = evaluations
            .filter("name" beginsWith search.getOrElse(""))
    I get Invalid FilterExpression: Incorrect operand type for operator or function; operator or function: begins_with, operand type: NULL (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: QKSOES0SHJMT28VNSTLB01EBFRVV4KQNSO5AEMVJF66Q9ASUAAJG)
    Wiem Zine El Abidine
    Hi, scanamo doesn't work when we have updated to zio 1.0.0-RC-18
    I opened this PR and updated interop-cats that uses the last zio version: scanamo/scanamo#629
    Aleksey Troitskiy
    Ayush Tiwari
    @all is there any plan to upgrade scanamo to AWS SDK 2.0 ?
    Hi, there. Any plans for an upgrade to zio RC-18 onwards?
    How can I get a Map[K,V] DynamoFormat instance?
    Stephen Duncan Jr
    Trying to update to the current milestone of Scanamo (from 1.0.0-M8 to 1.0.0-M12-1). There used to be a Semigroup for UpdateExpression, but it was removed. The docs still demonstrate using reduce with this semigroup to combine optional updates, etc. Is there a replacement way to do this?
    Stephen Duncan Jr
    For now, I’ve added implicit val updateExpressionSemigroup: Semigroup[UpdateExpression] = Semigroup.instance(_ and _) to the three classes that needed it, but seems a shame to have everyone provide their own...
    Is there a way to get Scanamo Snapshots?
    Barys Ilyushonak
    Hi there, I hope it is the right place to ask questions about scanamo. I have a table with global secondary index with projection type INCLUDE , so I have only couple of fields in the index in comparison to the table itself. During query I have InvalidPropertiesError . Is that a way to query GSI with projection in scanamo?
    Rob Kelly
    when is the new version being released?
    Harmeet Singh(Taara)
    Hey all, is it possible to do parallel scan using Scanamo ?
    Hey all, I have been trying to create a table with more than one GSI but wouldn't. I am able to create a table with a single GSI and query the same though. Couldn't find examples for more than one GSI too. Can someone please point me to some resource/functions on how to do it.Thanks!!
    Dario Abdulrehman
    Does anyone know what motivated M12-1 to change the return type for ScanamoFree#putAll to ScanamOps[Unit]? https://github.com/scanamo/scanamo/blame/40c50ebea1449bad32c34fd312dbac46c5a57b75/scanamo/src/main/scala/org/scanamo/ScanamoFree.scala#L51
    ^ cc @regiskuckaertz Thanks!
    Hi there, I have a question regarding scanamo design.
    ZioIntepreter uses refineOrDie if underlying AwsClient returns something but AmazonDynamoDBException, thus killing the fiber, and making the calling the library unsafe.
    So my question is why not using conventional left zio part when returning the error, and assume that any non AmzonException is fatal exception which should blow application.
    (that's the place: https://github.com/scanamo/scanamo/blob/f43ee01a4178ccafeacd9bb345cc0f0d83dfc1bb/zio/src/main/scala/org/scanamo/ops/ZioInterpreter.scala#L27)
    Sunny Shah
    Hey, Is it possible to update a particular key in Map using Scanamo?
    Sven Allers
    The last release is already 6 months old and there have been some interesting bug fixes and features merged in between. Are there any plans for a new release in the near future?
    Kai(luo) Wang
    :point_up: this! We need this for cats-effect 3.0 update. Will be much appreciated!
    Hi, is it possible to modify the updated return? as i see now there is no capability for that at the system, and it looks likes that is very easy to implement, can i create a PR for that? or i miss something?