ecde9e900aa73c0e1ca66477d8159a8b4049186d
[sdc.git] /
1 package org.openecomp.core.tools.store;
2
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;
11
12 import java.util.List;
13 import java.util.Objects;
14 import java.util.Optional;
15 import java.util.Set;
16
17 public class PermissionHandler {
18
19   private static NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface();
20   private static PermissionAccessor accessor =
21       noSqlDb.getMappingManager().createAccessor(PermissionAccessor.class);
22
23
24   public Optional<String> getItemUserPermission(String itemId, String user) {
25     ResultSet resultSet = accessor.getItemUserPermission(itemId, user);
26     Row row = resultSet.one();
27
28     if (Objects.nonNull(row)) {
29       return Optional.of(row.getString("permission"));
30     } else {
31       return Optional.empty();
32     }
33   }
34
35   public void setItemUserPermission(String itemId, String user, String permission) {
36     accessor.setItemUserPermission(itemId, user, permission);
37   }
38
39   public void addItem(Set<String> items, String userId, String permission){
40     accessor.addItem(items,userId,permission);
41   }
42
43   public List<ItemPermissionsEntity> getAll(){
44     return accessor.getAll().all();
45   }
46
47
48   @Accessor
49   interface PermissionAccessor {
50
51
52     @Query("INSERT into dox.item_permissions (item_id,user_id,permission)  VALUES (?,?,?)")
53     void setItemUserPermission(String permission, String itemId, String userId);
54
55
56     @Query("SELECT permission FROM dox.item_permissions WHERE item_id=? AND user_id=?")
57     ResultSet getItemUserPermission(String itemId, String userId);
58
59     @Query("SELECT * from dox.item_permissions")
60     Result<ItemPermissionsEntity> getAll();
61
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);
64   }
65
66 }