-
Notifications
You must be signed in to change notification settings - Fork 569
Expand file tree
/
Copy pathClusterDescriptionRepository.go
More file actions
68 lines (61 loc) · 2.56 KB
/
ClusterDescriptionRepository.go
File metadata and controls
68 lines (61 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/*
* Copyright (c) 2020 Devtron Labs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package repository
import (
"fmt"
"github.com/devtron-labs/devtron/pkg/sql"
"github.com/go-pg/pg"
"go.uber.org/zap"
"time"
)
// TODO: remove this whole repository, nothing different which cannot be included in cluster repository
type ClusterDescription struct {
ClusterId int `sql:"cluster_id"`
ClusterName string `sql:"cluster_name"`
ClusterDescription string `sql:"cluster_description"`
ServerUrl string `sql:"server_url"`
ClusterCreatedOn time.Time `sql:"cluster_created_on"`
ClusterCreatedBy int32 `sql:"cluster_created_by"`
NoteId int `sql:"note_id,pk"`
Note string `sql:"note"`
sql.AuditLog
}
type ClusterDescriptionRepository interface {
FindByClusterIdWithClusterDetails(clusterId int) (*ClusterDescription, error)
}
func NewClusterDescriptionRepositoryImpl(dbConnection *pg.DB, logger *zap.SugaredLogger) *ClusterDescriptionRepositoryImpl {
return &ClusterDescriptionRepositoryImpl{
dbConnection: dbConnection,
logger: logger,
}
}
type ClusterDescriptionRepositoryImpl struct {
dbConnection *pg.DB
logger *zap.SugaredLogger
}
func (impl ClusterDescriptionRepositoryImpl) FindByClusterIdWithClusterDetails(clusterId int) (*ClusterDescription, error) {
clusterDescription := &ClusterDescription{}
query := "SELECT cl.id AS cluster_id, cl.cluster_name AS cluster_name, cl.description AS cluster_description, cl.server_url, cl.created_on AS cluster_created_on, cl.created_by AS cluster_created_by, gn.id AS note_id, gn.description AS note, gn.created_by, gn.created_on, gn.updated_by, gn.updated_on FROM" +
" cluster cl LEFT JOIN" +
" generic_note gn " +
" ON cl.id=gn.identifier AND (gn.identifier_type = %d OR gn.identifier_type IS NULL)" +
" WHERE cl.id=%d AND cl.active=true " +
" LIMIT 1 OFFSET 0;"
query = fmt.Sprintf(query, 0, clusterId) //0 is for cluster type description
_, err := impl.dbConnection.Query(clusterDescription, query)
return clusterDescription, err
}