-
Notifications
You must be signed in to change notification settings - Fork 479
/
interval.go
85 lines (75 loc) · 2.56 KB
/
interval.go
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*******************************************************************************
* Copyright 2019 Dell Inc.
*
* 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 models
import (
"github.com/edgexfoundry/edgex-go/internal/pkg/db"
contract "github.com/edgexfoundry/go-mod-core-contracts/models"
"github.com/globalsign/mgo/bson"
)
// Interval
//
// Deprecated: Mongo functionality is deprecated as of the Geneva release.
type Interval struct {
Created int64 `bson:"created"`
Modified int64 `bson:"modified"`
Origin int64 `bson:"origin"`
Id bson.ObjectId `bson:"_id,omitempty"`
Uuid string `bson:"uuid,omitempty"`
Name string `bson:"name"`
Start string `bson:"start"`
End string `bson:"end"`
Frequency string `bson:"frequency"`
Cron string `bson:"cron,omitempty"`
RunOnce bool `bson:"runonce"`
}
func (in *Interval) ToContract() (c contract.Interval) {
// Always hand back the UUID as the contract event ID unless it'in blank (an old event, for example blackbox test scripts
id := in.Uuid
if id == "" {
id = in.Id.Hex()
}
c.Timestamps = contract.Timestamps{Created: in.Created, Modified: in.Modified, Origin: in.Origin}
c.ID = id
c.Name = in.Name
c.Start = in.Start
c.End = in.End
c.Frequency = in.Frequency
c.Cron = in.Cron
c.RunOnce = in.RunOnce
return
}
func (in *Interval) FromContract(from contract.Interval) (id string, err error) {
in.Id, in.Uuid, err = fromContractId(from.ID)
if err != nil {
return
}
in.Created = from.Timestamps.Created
in.Modified = from.Timestamps.Modified
in.Origin = from.Timestamps.Origin
in.Name = from.Name
in.Start = from.Start
in.End = from.End
in.Frequency = from.Frequency
in.RunOnce = from.RunOnce
in.Cron = from.Cron
id = toContractId(in.Id, in.Uuid)
return
}
func (in *Interval) TimestampForUpdate() {
in.Modified = db.MakeTimestamp()
}
func (in *Interval) TimestampForAdd() {
in.TimestampForUpdate()
in.Created = in.Modified
}