vuu icon indicating copy to clipboard operation
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

Open chrisjstevo opened this issue 2 years ago • 0 comments

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())
          }
      }

chrisjstevo avatar Oct 16 '23 13:10 chrisjstevo