Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 3 additions & 16 deletions models/namespace/namespace.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package namespace

import (
"database/sql"
"errors"
)
import "database/sql"

type Namespace struct {
ID string
Expand All @@ -23,16 +20,6 @@ func checkErr(err error) bool {
}
return true
}

// Проверяет колличество обработаных записей, если не было обработано ни одной - возвращает ошибку noRowsProcessedError, иначе nil.
func rowNumbersHandler(row sql.Result) error {
noRowsProcessedError := errors.New("Failed to update the namespace. Maybe there is no namespace with such ID in the database.")
rowsNumber, err := row.RowsAffected()
if err != nil {
return err
}
if rowsNumber < 1 {
return noRowsProcessedError
}
return err
func SetDB(sdb *sql.DB) {
db = sdb
}
4 changes: 2 additions & 2 deletions models/namespace/namespace.sql
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
CREATE TABLE IF NOT EXISTS public.namespaces
(
id uuid NOT NULL DEFAULT uuid_generate_v4(),
label character varying,
user_id uuid NOT NULL references users(user_id),
label character varying UNIQUE,
user_id uuid NOT NULL UNIQUE references users(user_id),
created timestamp without time zone NOT NULL DEFAULT statement_timestamp(),
active boolean NOT NULL DEFAULT false,
removed boolean NOT NULL DEFAULT false,
Expand Down
54 changes: 45 additions & 9 deletions models/namespace/sql.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,32 @@ import (
)

// Add (Namespace, *bool) - Добавление новой записи в таблице Namespace. Передаются только: label, user_id
func (_ *Namespace) Add(ns Namespace, ok *bool) error {
func (_ *Namespace) Add(nameserver Namespace, id *string) error {
query := "INSERT INTO namespaces(label, user_id) VALUES($1, $2)"
err := queryExecutionHandler(query, ns.Label, ns.UserID)
*ok = checkErr(err)
return err
err := queryExecutionHandler(query, nameserver.Label, nameserver.UserID)
ns := Namespace{}
row := db.QueryRow("SELECT * FROM namespaces WHERE label = $1", nameserver.Label)
err = row.Scan(
&ns.ID,
&ns.Label,
&ns.UserID,
&ns.Created,
&ns.Active,
&ns.Removed,
&ns.KubeExist,
)
if err != nil {
return err
}

*id = ns.ID
return nil
}

// Delete (Namespace, *bool) - изменение removed -> true
func (_ *Namespace) Delete(ns Namespace, ok *bool) error {
func (_ *Namespace) DeleteById(id string, ok *bool) error {
query := "UPDATE namespaces SET removed=TRUE where id=$1"
err := queryExecutionHandler(query, ns.ID)
err := queryExecutionHandler(query, id)
*ok = checkErr(err)
return err
}
Expand Down Expand Up @@ -49,8 +64,29 @@ func (_ *Namespace) GetAll(userId string, resp *[]Namespace) error {

}

// Get (id string, *Namespace) - возврат конкретного Namespace пользователя
func (_ *Namespace) Get(id string, resp *Namespace) error {
// Get(Namespace, *Namespace). Возврат Namespace по label, user_id
func (_ *Namespace) Get(namespace Namespace, resp *Namespace) error {
ns := Namespace{}
row := db.QueryRow("SELECT * FROM namespaces WHERE label = $1 and user_id = $2", namespace.Label, namespace.UserID)
err := row.Scan(&ns.ID,
&ns.Label,
&ns.UserID,
&ns.Created,
&ns.Active,
&ns.Removed,
&ns.KubeExist,
)
if err != nil {
return err
}

*resp = ns
return nil

}

// GetById (id string, *Namespace) - возврат конкретного Namespace пользователя
func (_ *Namespace) GetById(id string, resp *Namespace) error {
ns := Namespace{}
row := db.QueryRow("SELECT * FROM namespaces WHERE id = $1", id)
err := row.Scan(&ns.ID,
Expand Down Expand Up @@ -103,7 +139,7 @@ func (_ *Namespace) DeletedInKube(id string, ok *bool) error {
}

// Rename (Namespace, *bool) - изменение label
func (_ *Namespace) Rename(ns Namespace, ok *bool) error {
func (_ *Namespace) RenameById(ns Namespace, ok *bool) error {
query := "UPDATE namespaces SET label=$1 where id=$2"
err := queryExecutionHandler(query, ns.Label, ns.ID)
*ok = checkErr(err)
Expand Down