Initial Commit

This commit is contained in:
2025-03-24 08:50:01 +01:00
commit 30611aa45d
26 changed files with 1477 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
package table
import (
_ "embed"
"sap-cds-search/cmd/database"
)
type CDSView struct {
TechnicalName string `json:"Name"`
DisplayName string `json:"DisplayName"`
Description string `json:"Description"`
Version string `json:"Version"`
State string `json:"State"`
CreatedAt int `json:"CreatedAt"`
ModifiedAt int `json:"ModifiedAt"`
}
//go:embed sql/query_cds_view.sql
var query_cds_view string
func GetCDSView(TechnicalName string) (*CDSView, error) {
row := database.DB.QueryRow(query_cds_view, TechnicalName)
var CDSView CDSView
err := row.Scan(&CDSView.TechnicalName, &CDSView.DisplayName, &CDSView.Description, &CDSView.Version, &CDSView.State, &CDSView.CreatedAt, &CDSView.ModifiedAt)
if err != nil {
return nil, err
}
return &CDSView, nil
}
//go:embed sql/query_all_cds_view_technical_names.sql
var query_all_cds_view_technical_names string
func QueryAllCDSViewTechnicalNames() (*[]string, error) {
rows, err := database.DB.Query(query_all_cds_view_technical_names)
if err != nil {
return nil, err
}
var technicalNames []string
for rows.Next() {
var technicalName string
err := rows.Scan(&technicalName)
if err != nil {
return nil, err
}
technicalNames = append(technicalNames, technicalName)
}
return &technicalNames, nil
}

View File

@@ -0,0 +1,45 @@
package table
import (
_ "embed"
"sap-cds-search/cmd/database"
)
type CDSViewField struct {
CDSViewTechnicalName string
FieldName string `json:"fieldname"`
Description string `json:"description"`
DataType string `json:"datatype"`
FieldLength string `json:"fieldlength"`
}
//go:embed sql/query_cds_view_fields.sql
var query_cds_view_fields string
func GetCDSViewFields(CDSViewTechnicalName string) (*[]CDSViewField, error) {
rows, err := database.DB.Query(query_cds_view_fields, CDSViewTechnicalName)
if err != nil {
return nil, err
}
var fields []CDSViewField = make([]CDSViewField, 0)
for rows.Next() {
var field CDSViewField
err := rows.Scan(&field.CDSViewTechnicalName, &field.FieldName, &field.Description, &field.DataType, &field.FieldLength)
if err != nil {
return nil, err
}
fields = append(fields, field)
}
return &fields, nil
}
//go:embed sql/insert_or_replace_cds_view_field.sql
var insert_or_replace_cds_view_field string
func InsertOrReplaceCDSViewField(field CDSViewField) error {
_, err := database.DB.Exec(insert_or_replace_cds_view_field, field.CDSViewTechnicalName, field.FieldName, field.Description, field.DataType, field.FieldLength)
if err != nil {
return err
}
return nil
}

View File

@@ -0,0 +1,42 @@
package table
import (
_ "embed"
"sap-cds-search/cmd/database"
)
type Keyword struct {
CDSViewTechnicalName string
Keyword string
}
//go:embed sql/query_all_keywords.sql
var query_all_keywords string
func GetAllKeywords() (*[]Keyword, error) {
rows, err := database.DB.Query(query_all_keywords)
if err != nil {
return nil, err
}
var keywords []Keyword
for rows.Next() {
var keyword Keyword
err := rows.Scan(&keyword.CDSViewTechnicalName, &keyword.Keyword)
if err != nil {
return nil, err
}
keywords = append(keywords, keyword)
}
return &keywords, nil
}
//go:embed sql/insert_or_replace_keyword.sql
var insert_or_replace_keyword string
func InsertOrReplaceKeyword(CDSViewTechnicalName string, Keywords string) error {
_, err := database.DB.Exec(insert_or_replace_keyword, CDSViewTechnicalName, Keywords)
if err != nil {
return err
}
return nil
}

View File

@@ -0,0 +1,4 @@
INSERT
OR REPLACE INTO CDSViewField
VALUES
(?, ?, ?, ?, ?)

View File

@@ -0,0 +1,4 @@
INSERT
OR REPLACE INTO Keyword
VALUES
(?, ?)

View File

@@ -0,0 +1,4 @@
SELECT
TechnicalName
FROM
CDSView

View File

@@ -0,0 +1,29 @@
select
CDSViewTechnicalName as CDSViewTechnicalName,
lower(FieldName) as keyword
from
CDSViewField
UNION
select
CDSViewTechnicalName as CDSViewTechnicalName,
lower(Description) as keyword
from
CDSViewField
UNION
select
TechnicalName as CDSViewTechnicalName,
lower(TechnicalName) as keyword
from
CDSView
UNION
select
TechnicalName as CDSViewTechnicalName,
lower(Description) as keyword
from
CDSView
UNION
select
TechnicalName as CDSViewTechnicalName,
lower(DisplayName) as keyword
from
CDSView

View File

@@ -0,0 +1,2 @@
SELECT * FROM CDSView
WHERE TechnicalName = ?

View File

@@ -0,0 +1,2 @@
SELECT * FROM CDSViewField
WHERE CDSViewTechnicalName = ?