-
Notifications
You must be signed in to change notification settings - Fork 68
/
Copy pathir_mail_server.go
127 lines (111 loc) · 4.35 KB
/
ir_mail_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
package odoo
import (
"fmt"
)
// IrMailServer represents ir.mail_server model.
type IrMailServer struct {
LastUpdate *Time `xmlrpc:"__last_update,omptempty"`
Active *Bool `xmlrpc:"active,omptempty"`
CreateDate *Time `xmlrpc:"create_date,omptempty"`
CreateUid *Many2One `xmlrpc:"create_uid,omptempty"`
DisplayName *String `xmlrpc:"display_name,omptempty"`
Id *Int `xmlrpc:"id,omptempty"`
Name *String `xmlrpc:"name,omptempty"`
Sequence *Int `xmlrpc:"sequence,omptempty"`
SmtpDebug *Bool `xmlrpc:"smtp_debug,omptempty"`
SmtpEncryption *Selection `xmlrpc:"smtp_encryption,omptempty"`
SmtpHost *String `xmlrpc:"smtp_host,omptempty"`
SmtpPass *String `xmlrpc:"smtp_pass,omptempty"`
SmtpPort *Int `xmlrpc:"smtp_port,omptempty"`
SmtpUser *String `xmlrpc:"smtp_user,omptempty"`
WriteDate *Time `xmlrpc:"write_date,omptempty"`
WriteUid *Many2One `xmlrpc:"write_uid,omptempty"`
}
// IrMailServers represents array of ir.mail_server model.
type IrMailServers []IrMailServer
// IrMailServerModel is the odoo model name.
const IrMailServerModel = "ir.mail_server"
// Many2One convert IrMailServer to *Many2One.
func (im *IrMailServer) Many2One() *Many2One {
return NewMany2One(im.Id.Get(), "")
}
// CreateIrMailServer creates a new ir.mail_server model and returns its id.
func (c *Client) CreateIrMailServer(im *IrMailServer) (int64, error) {
return c.Create(IrMailServerModel, im)
}
// UpdateIrMailServer updates an existing ir.mail_server record.
func (c *Client) UpdateIrMailServer(im *IrMailServer) error {
return c.UpdateIrMailServers([]int64{im.Id.Get()}, im)
}
// UpdateIrMailServers updates existing ir.mail_server records.
// All records (represented by ids) will be updated by im values.
func (c *Client) UpdateIrMailServers(ids []int64, im *IrMailServer) error {
return c.Update(IrMailServerModel, ids, im)
}
// DeleteIrMailServer deletes an existing ir.mail_server record.
func (c *Client) DeleteIrMailServer(id int64) error {
return c.DeleteIrMailServers([]int64{id})
}
// DeleteIrMailServers deletes existing ir.mail_server records.
func (c *Client) DeleteIrMailServers(ids []int64) error {
return c.Delete(IrMailServerModel, ids)
}
// GetIrMailServer gets ir.mail_server existing record.
func (c *Client) GetIrMailServer(id int64) (*IrMailServer, error) {
ims, err := c.GetIrMailServers([]int64{id})
if err != nil {
return nil, err
}
if ims != nil && len(*ims) > 0 {
return &((*ims)[0]), nil
}
return nil, fmt.Errorf("id %v of ir.mail_server not found", id)
}
// GetIrMailServers gets ir.mail_server existing records.
func (c *Client) GetIrMailServers(ids []int64) (*IrMailServers, error) {
ims := &IrMailServers{}
if err := c.Read(IrMailServerModel, ids, nil, ims); err != nil {
return nil, err
}
return ims, nil
}
// FindIrMailServer finds ir.mail_server record by querying it with criteria.
func (c *Client) FindIrMailServer(criteria *Criteria) (*IrMailServer, error) {
ims := &IrMailServers{}
if err := c.SearchRead(IrMailServerModel, criteria, NewOptions().Limit(1), ims); err != nil {
return nil, err
}
if ims != nil && len(*ims) > 0 {
return &((*ims)[0]), nil
}
return nil, fmt.Errorf("no ir.mail_server was found with criteria %v", criteria)
}
// FindIrMailServers finds ir.mail_server records by querying it
// and filtering it with criteria and options.
func (c *Client) FindIrMailServers(criteria *Criteria, options *Options) (*IrMailServers, error) {
ims := &IrMailServers{}
if err := c.SearchRead(IrMailServerModel, criteria, options, ims); err != nil {
return nil, err
}
return ims, nil
}
// FindIrMailServerIds finds records ids by querying it
// and filtering it with criteria and options.
func (c *Client) FindIrMailServerIds(criteria *Criteria, options *Options) ([]int64, error) {
ids, err := c.Search(IrMailServerModel, criteria, options)
if err != nil {
return []int64{}, err
}
return ids, nil
}
// FindIrMailServerId finds record id by querying it with criteria.
func (c *Client) FindIrMailServerId(criteria *Criteria, options *Options) (int64, error) {
ids, err := c.Search(IrMailServerModel, criteria, options)
if err != nil {
return -1, err
}
if len(ids) > 0 {
return ids[0], nil
}
return -1, fmt.Errorf("no ir.mail_server was found with criteria %v and options %v", criteria, options)
}