1 package org.openecomp.core.tools.store;
3 import com.datastax.driver.core.ResultSet;
4 import com.datastax.driver.core.Row;
5 import com.datastax.driver.mapping.Result;
6 import com.datastax.driver.mapping.annotations.Accessor;
7 import com.datastax.driver.mapping.annotations.Query;
8 import org.openecomp.core.nosqldb.api.NoSqlDb;
9 import org.openecomp.core.nosqldb.factory.NoSqlDbFactory;
10 import org.openecomp.sdc.itempermissions.type.ItemPermissionsEntity;
12 import java.util.List;
13 import java.util.Objects;
14 import java.util.Optional;
17 public class PermissionHandler {
19 private static NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface();
20 private static PermissionAccessor accessor =
21 noSqlDb.getMappingManager().createAccessor(PermissionAccessor.class);
24 public Optional<String> getItemUserPermission(String itemId, String user) {
25 ResultSet resultSet = accessor.getItemUserPermission(itemId, user);
26 Row row = resultSet.one();
28 if (Objects.nonNull(row)) {
29 return Optional.of(row.getString("permission"));
31 return Optional.empty();
35 public void setItemUserPermission(String itemId, String user, String permission) {
36 accessor.setItemUserPermission(itemId, user, permission);
39 public void addItem(Set<String> items, String userId, String permission){
40 accessor.addItem(items,userId,permission);
43 public List<ItemPermissionsEntity> getAll(){
44 return accessor.getAll().all();
49 interface PermissionAccessor {
52 @Query("INSERT into dox.item_permissions (item_id,user_id,permission) VALUES (?,?,?)")
53 void setItemUserPermission(String permission, String itemId, String userId);
56 @Query("SELECT permission FROM dox.item_permissions WHERE item_id=? AND user_id=?")
57 ResultSet getItemUserPermission(String itemId, String userId);
59 @Query("SELECT * from dox.item_permissions")
60 Result<ItemPermissionsEntity> getAll();
62 @Query("update dox.user_permission_items set item_list=item_list+? WHERE user_id = ? AND permission = ?")
63 void addItem(Set<String> items, String userId, String permission);