vuu
vuu copied to clipboard
As a developer I'd like a helper method on the table class to determine if a row has changed or not
Feature Request
An example of this on the Permission Provider:
Existing Code:
table.pullRow(session.user) match {
case EmptyRowData => table.processUpdate(session.user,
RowWithData(session.user,
Map(User -> session.user, Bitmask -> PermissionSet.NoPermissions, BitmaskAsString -> PermissionSet.toBinaryString(PermissionSet.NoPermissions), BitmaskAsRoles -> PermissionSet.rolesToString(PermissionSet.NoPermissions) ))
, clock.now())
case row: RowWithData =>
val newData = row.data ++ Map(BitmaskAsString -> PermissionSet.toBinaryString(row.get(Bitmask).asInstanceOf[Int]), BitmaskAsRoles -> PermissionSet.rolesToString(row.get(Bitmask).asInstanceOf[Int]))
table.processUpdate(session.user, RowWithData(session.user, newData), clock.now())
}
New Code:
table.pullRow(session.user) match {
case EmptyRowData => table.processUpdate(session.user,
RowWithData(session.user,
Map(User -> session.user, Bitmask -> PermissionSet.NoPermissions, BitmaskAsString -> PermissionSet.toBinaryString(PermissionSet.NoPermissions), BitmaskAsRoles -> PermissionSet.rolesToString(PermissionSet.NoPermissions) ))
, clock.now())
case row: RowWithData =>
val newData = row.data ++ Map(BitmaskAsString -> PermissionSet.toBinaryString(row.get(Bitmask).asInstanceOf[Int]), BitmaskAsRoles -> PermissionSet.rolesToString(row.get(Bitmask).asInstanceOf[Int]))
if(!table.hasChanged(newData)){
table.processUpdate(session.user, RowWithData(session.user, newData), clock.now())
}
}