| 653 | } |
| 654 | |
| 655 | func (c Client) LSET(key string, index int64, element string) (ok bool, err error) { |
| 656 | node, found, err := c.listNodeAtIndex(key, index) |
| 657 | if err != nil || !found { |
| 658 | return |
| 659 | } |
| 660 | |
| 661 | updater := newExpresionBuilder() |
| 662 | updater.addConditionExists(c.pk) |
| 663 | updater.updateSET(vk, StringValue{element}) |
| 664 | |
| 665 | _, err = c.ddbClient.UpdateItemRequest(&dynamodb.UpdateItemInput{ |
| 666 | ConditionExpression: updater.conditionExpression(), |
| 667 | ExpressionAttributeNames: updater.expressionAttributeNames(), |
| 668 | ExpressionAttributeValues: updater.expressionAttributeValues(), |
| 669 | Key: node.keyAV(c), |
| 670 | TableName: aws.String(c.table), |
| 671 | UpdateExpression: updater.updateExpression(), |
| 672 | }).Send(context.TODO()) |
| 673 | |
| 674 | if err != nil { |
| 675 | return |
| 676 | } |
| 677 | |
| 678 | return true, nil |
| 679 | } |
| 680 | |
| 681 | func (c Client) RPOP(key string) (element ReturnValue, err error) { |
| 682 | element, _, err = c.listPop(key, Right) |