-
Notifications
You must be signed in to change notification settings - Fork 68
/
Copy pathfetchmail_server.go
136 lines (120 loc) · 4.98 KB
/
fetchmail_server.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package odoo
import (
"fmt"
)
// FetchmailServer represents fetchmail.server model.
type FetchmailServer struct {
LastUpdate *Time `xmlrpc:"__last_update,omptempty"`
ActionId *Many2One `xmlrpc:"action_id,omptempty"`
Active *Bool `xmlrpc:"active,omptempty"`
Attach *Bool `xmlrpc:"attach,omptempty"`
Configuration *String `xmlrpc:"configuration,omptempty"`
CreateDate *Time `xmlrpc:"create_date,omptempty"`
CreateUid *Many2One `xmlrpc:"create_uid,omptempty"`
Date *Time `xmlrpc:"date,omptempty"`
DisplayName *String `xmlrpc:"display_name,omptempty"`
Id *Int `xmlrpc:"id,omptempty"`
IsSsl *Bool `xmlrpc:"is_ssl,omptempty"`
MessageIds *Relation `xmlrpc:"message_ids,omptempty"`
Name *String `xmlrpc:"name,omptempty"`
ObjectId *Many2One `xmlrpc:"object_id,omptempty"`
Original *Bool `xmlrpc:"original,omptempty"`
Password *String `xmlrpc:"password,omptempty"`
Port *Int `xmlrpc:"port,omptempty"`
Priority *Int `xmlrpc:"priority,omptempty"`
Script *String `xmlrpc:"script,omptempty"`
Server *String `xmlrpc:"server,omptempty"`
State *Selection `xmlrpc:"state,omptempty"`
Type *Selection `xmlrpc:"type,omptempty"`
User *String `xmlrpc:"user,omptempty"`
WriteDate *Time `xmlrpc:"write_date,omptempty"`
WriteUid *Many2One `xmlrpc:"write_uid,omptempty"`
}
// FetchmailServers represents array of fetchmail.server model.
type FetchmailServers []FetchmailServer
// FetchmailServerModel is the odoo model name.
const FetchmailServerModel = "fetchmail.server"
// Many2One convert FetchmailServer to *Many2One.
func (fs *FetchmailServer) Many2One() *Many2One {
return NewMany2One(fs.Id.Get(), "")
}
// CreateFetchmailServer creates a new fetchmail.server model and returns its id.
func (c *Client) CreateFetchmailServer(fs *FetchmailServer) (int64, error) {
return c.Create(FetchmailServerModel, fs)
}
// UpdateFetchmailServer updates an existing fetchmail.server record.
func (c *Client) UpdateFetchmailServer(fs *FetchmailServer) error {
return c.UpdateFetchmailServers([]int64{fs.Id.Get()}, fs)
}
// UpdateFetchmailServers updates existing fetchmail.server records.
// All records (represented by ids) will be updated by fs values.
func (c *Client) UpdateFetchmailServers(ids []int64, fs *FetchmailServer) error {
return c.Update(FetchmailServerModel, ids, fs)
}
// DeleteFetchmailServer deletes an existing fetchmail.server record.
func (c *Client) DeleteFetchmailServer(id int64) error {
return c.DeleteFetchmailServers([]int64{id})
}
// DeleteFetchmailServers deletes existing fetchmail.server records.
func (c *Client) DeleteFetchmailServers(ids []int64) error {
return c.Delete(FetchmailServerModel, ids)
}
// GetFetchmailServer gets fetchmail.server existing record.
func (c *Client) GetFetchmailServer(id int64) (*FetchmailServer, error) {
fss, err := c.GetFetchmailServers([]int64{id})
if err != nil {
return nil, err
}
if fss != nil && len(*fss) > 0 {
return &((*fss)[0]), nil
}
return nil, fmt.Errorf("id %v of fetchmail.server not found", id)
}
// GetFetchmailServers gets fetchmail.server existing records.
func (c *Client) GetFetchmailServers(ids []int64) (*FetchmailServers, error) {
fss := &FetchmailServers{}
if err := c.Read(FetchmailServerModel, ids, nil, fss); err != nil {
return nil, err
}
return fss, nil
}
// FindFetchmailServer finds fetchmail.server record by querying it with criteria.
func (c *Client) FindFetchmailServer(criteria *Criteria) (*FetchmailServer, error) {
fss := &FetchmailServers{}
if err := c.SearchRead(FetchmailServerModel, criteria, NewOptions().Limit(1), fss); err != nil {
return nil, err
}
if fss != nil && len(*fss) > 0 {
return &((*fss)[0]), nil
}
return nil, fmt.Errorf("no fetchmail.server was found with criteria %v", criteria)
}
// FindFetchmailServers finds fetchmail.server records by querying it
// and filtering it with criteria and options.
func (c *Client) FindFetchmailServers(criteria *Criteria, options *Options) (*FetchmailServers, error) {
fss := &FetchmailServers{}
if err := c.SearchRead(FetchmailServerModel, criteria, options, fss); err != nil {
return nil, err
}
return fss, nil
}
// FindFetchmailServerIds finds records ids by querying it
// and filtering it with criteria and options.
func (c *Client) FindFetchmailServerIds(criteria *Criteria, options *Options) ([]int64, error) {
ids, err := c.Search(FetchmailServerModel, criteria, options)
if err != nil {
return []int64{}, err
}
return ids, nil
}
// FindFetchmailServerId finds record id by querying it with criteria.
func (c *Client) FindFetchmailServerId(criteria *Criteria, options *Options) (int64, error) {
ids, err := c.Search(FetchmailServerModel, criteria, options)
if err != nil {
return -1, err
}
if len(ids) > 0 {
return ids[0], nil
}
return -1, fmt.Errorf("no fetchmail.server was found with criteria %v and options %v", criteria, options)
}