UserRolesController methods up
[portal.git] / portal-BE / src / main / java / org / onap / portal / service / EcompUserAppRolesService.java
1 /*
2  * ============LICENSE_START==========================================
3  * ONAP Portal
4  * ===================================================================
5  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6  * ===================================================================
7  * Modifications Copyright (c) 2019 Samsung
8  * ===================================================================
9  *
10  * Unless otherwise specified, all software contained herein is licensed
11  * under the Apache License, Version 2.0 (the "License");
12  * you may not use this software except in compliance with the License.
13  * You may obtain a copy of the License at
14  *
15  *             http://www.apache.org/licenses/LICENSE-2.0
16  *
17  * Unless required by applicable law or agreed to in writing, software
18  * distributed under the License is distributed on an "AS IS" BASIS,
19  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20  * See the License for the specific language governing permissions and
21  * limitations under the License.
22  *
23  * Unless otherwise specified, all documentation contained herein is licensed
24  * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
25  * you may not use this documentation except in compliance with the License.
26  * You may obtain a copy of the License at
27  *
28  *             https://creativecommons.org/licenses/by/4.0/
29  *
30  * Unless required by applicable law or agreed to in writing, documentation
31  * distributed under the License is distributed on an "AS IS" BASIS,
32  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
33  * See the License for the specific language governing permissions and
34  * limitations under the License.
35  *
36  * ============LICENSE_END============================================
37  *
38  *
39  */
40
41 package org.onap.portal.service;
42
43 import java.util.List;
44 import java.util.stream.Collectors;
45 import javax.persistence.EntityManager;
46 import javax.persistence.Tuple;
47 import org.onap.portal.domain.dto.transport.EcompUserAppRoles;
48 import org.springframework.beans.factory.annotation.Autowired;
49 import org.springframework.stereotype.Service;
50
51 @Service
52 public class EcompUserAppRolesService {
53
54   private final static String QUERY = "select\n"
55       + "  fr.role_name as roleName,\n"
56       + "  fu.app_id as appId,\n"
57       + "  fu.user_id as userId,\n"
58       + "  fu.priority as priority,\n"
59       + "  fu.role_id as roleId\n"
60       + " from\n"
61       + "  fn_user_role fu\n"
62       + "  left outer join fn_role fr on fu.role_id = fr.role_id\n"
63       + " where\n"
64       + "  fu.user_id = :userId\n"
65       + "  and fu.app_id = :appId";
66
67   private final EntityManager entityManager;
68
69   @Autowired
70   public EcompUserAppRolesService(EntityManager entityManager) {
71     this.entityManager = entityManager;
72   }
73
74
75   public List<EcompUserAppRoles> getUserAppExistingRoles(final Long appId, final Long userId){
76     List<Tuple> tuples = entityManager.createQuery(QUERY, Tuple.class)
77         .setParameter("appId", appId)
78         .setParameter("userId", userId)
79         .getResultList();
80     return tuples.stream().map(this::tupleToEcompUserAppRoles).collect(Collectors.toList());
81   }
82
83   private EcompUserAppRoles tupleToEcompUserAppRoles(Tuple tuple){
84     return new EcompUserAppRoles((String)tuple.get("appId"), (Long) tuple.get("userId"), (Integer) tuple.get("priority"), (Long) tuple.get("roleId"), (String) tuple.get("roleName"));
85   }
86 }