grafana-backuper/pkg/grafana/schema.go

141 lines
4.8 KiB
Go

package grafana
import (
"git.ar21.de/yolokube/grafana-backuper/pkg/grafana/schema"
)
func DashboardCreateResponseFromSchema(source schema.DashboardCreateResponse) *DashboardCreateResponse {
return &DashboardCreateResponse{
DashboardID: source.DashboardID,
DashboardUID: source.DashboardUID,
URL: source.URL,
Status: source.Status,
Version: source.Version,
Slug: source.Slug,
}
}
func DashboardFromSchema(source schema.Dashboard) *Dashboard {
return &Dashboard{
IsStarred: source.Meta.IsStarred,
Type: source.Meta.Type,
CanSave: source.Meta.CanSave,
CanEdit: source.Meta.CanEdit,
CanAdmin: source.Meta.CanAdmin,
CanStar: source.Meta.CanStar,
CanDelete: source.Meta.CanDelete,
Slug: source.Meta.Slug,
URL: source.Meta.URL,
Expires: source.Meta.Expires,
Created: source.Meta.Created,
Updated: source.Meta.Updated,
UpdatedBy: source.Meta.UpdatedBy,
CreatedBy: source.Meta.CreatedBy,
Version: source.Meta.Version,
HasACL: source.Meta.HasACL,
IsFolder: source.Meta.IsFolder,
FolderID: source.Meta.FolderID,
FolderUID: source.Meta.FolderUID,
FolderTitle: source.Meta.FolderTitle,
FolderURL: source.Meta.FolderURL,
Provisioned: source.Meta.Provisioned,
ProvisionedExternalID: source.Meta.ProvisionedExternalID,
AnnotationsPermissions: AnnotationsPermissions{
Dashboard: AnnotationPermissions{
CanAdd: source.Meta.AnnotationsPermissions.Dashboard.CanAdd,
CanEdit: source.Meta.AnnotationsPermissions.Dashboard.CanEdit,
CanDelete: source.Meta.AnnotationsPermissions.Dashboard.CanDelete,
},
Organization: AnnotationPermissions{
CanAdd: source.Meta.AnnotationsPermissions.Organization.CanAdd,
CanEdit: source.Meta.AnnotationsPermissions.Organization.CanEdit,
CanDelete: source.Meta.AnnotationsPermissions.Organization.CanDelete,
},
},
Dashboard: source.Dashboard,
}
}
func DashboardVersionFromSchema(source schema.DashboardVersion) *DashboardVersion {
return &DashboardVersion{
ID: source.ID,
DashboardID: source.DashboardID,
DashboardUID: source.UID,
ParentVersion: source.ParentVersion,
RestoredFrom: source.RestoredFrom,
Version: source.Version,
Created: source.Created,
CreatedBy: source.CreatedBy,
Message: source.Message,
Data: source.Data,
}
}
func ErrorResponseFromSchema(source schema.ErrorResponse) *ErrorResponse {
return &ErrorResponse{
Message: source.Message,
TraceID: source.TraceID,
}
}
func SearchResultFromSchema(source schema.SearchResult) *SearchResult {
return &SearchResult{
ID: source.ID,
UID: source.UID,
Title: source.Title,
URI: source.URI,
URL: source.URL,
Slug: source.Slug,
Type: source.Type,
Tags: source.Tags,
IsStarred: source.IsStarred,
SortMeta: source.SortMeta,
FolderID: source.FolderID,
FolderUID: source.FolderUID,
FolderTitle: source.FolderTitle,
FolderURL: source.FolderURL,
}
}
func SchemaFromDashboardMeta(dm *Dashboard) schema.Dashboard {
return schema.Dashboard{
Meta: schema.DashboardMeta{
IsStarred: dm.IsStarred,
Type: dm.Type,
CanSave: dm.CanSave,
CanEdit: dm.CanEdit,
CanAdmin: dm.CanAdmin,
CanStar: dm.CanStar,
CanDelete: dm.CanDelete,
Slug: dm.Slug,
URL: dm.URL,
Expires: dm.Expires,
Created: dm.Created,
Updated: dm.Updated,
UpdatedBy: dm.UpdatedBy,
CreatedBy: dm.CreatedBy,
Version: dm.Version,
HasACL: dm.HasACL,
IsFolder: dm.IsFolder,
FolderID: dm.FolderID,
FolderUID: dm.FolderUID,
FolderTitle: dm.FolderTitle,
FolderURL: dm.FolderURL,
Provisioned: dm.Provisioned,
ProvisionedExternalID: dm.ProvisionedExternalID,
AnnotationsPermissions: schema.AnnotationsPermissions{
Dashboard: schema.AnnotationPermissions{
CanAdd: dm.AnnotationsPermissions.Dashboard.CanAdd,
CanEdit: dm.AnnotationsPermissions.Dashboard.CanEdit,
CanDelete: dm.AnnotationsPermissions.Dashboard.CanDelete,
},
Organization: schema.AnnotationPermissions{
CanAdd: dm.AnnotationsPermissions.Organization.CanAdd,
CanEdit: dm.AnnotationsPermissions.Organization.CanEdit,
CanDelete: dm.AnnotationsPermissions.Organization.CanDelete,
},
},
},
Dashboard: dm.Dashboard,
}
}