| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package models
- import (
- "encoding/json"
- "github.com/porter-dev/porter/api/types"
- "gorm.io/gorm"
- )
- type Policy struct {
- gorm.Model
- UniqueID string `gorm:"unique"`
- ProjectID uint
- CreatedByUserID uint
- Name string
- PolicyBytes []byte
- }
- func (p *Policy) ToAPIPolicyTypeMeta() *types.APIPolicyMeta {
- return &types.APIPolicyMeta{
- CreatedAt: p.CreatedAt,
- UpdatedAt: p.UpdatedAt,
- UID: p.UniqueID,
- ProjectID: p.ProjectID,
- Name: p.Name,
- }
- }
- func (p *Policy) ToAPIPolicyType() (*types.APIPolicy, error) {
- policy := []*types.PolicyDocument{}
- err := json.Unmarshal(p.PolicyBytes, &policy)
- if err != nil {
- return nil, err
- }
- return &types.APIPolicy{
- APIPolicyMeta: p.ToAPIPolicyTypeMeta(),
- Policy: policy,
- }, nil
- }
|