(side LSide, newAddress string, c Client)
| 161 | } |
| 162 | |
| 163 | func (ln listNode) updateSideAction(side LSide, newAddress string, c Client) dynamodb.TransactWriteItem { |
| 164 | updater := newExpresionBuilder() |
| 165 | updater.addConditionEquality(ln.prevAttr(side), StringValue{ln.prev(side)}) |
| 166 | updater.addConditionEquality(ln.nextAttr(side), StringValue{ln.next(side)}) |
| 167 | updater.updateSET(ln.prevAttr(side), StringValue{newAddress}) |
| 168 | |
| 169 | if newAddress == listNull || ln.next(side) == listNull { |
| 170 | updater.updateSET(c.skN, IntValue{1}) |
| 171 | } else { |
| 172 | updater.updateSET(c.skN, IntValue{0}) |
| 173 | } |
| 174 | |
| 175 | return dynamodb.TransactWriteItem{ |
| 176 | Update: &dynamodb.Update{ |
| 177 | ConditionExpression: updater.conditionExpression(), |
| 178 | ExpressionAttributeNames: updater.expressionAttributeNames(), |
| 179 | ExpressionAttributeValues: updater.expressionAttributeValues(), |
| 180 | Key: ln.keyAV(c), |
| 181 | TableName: aws.String(c.table), |
| 182 | UpdateExpression: updater.updateExpression(), |
| 183 | }, |
| 184 | } |
| 185 | } |
| 186 | |
| 187 | func (ln listNode) isTail() bool { |
| 188 | return ln.right == listNull |
no test coverage detected