-
Notifications
You must be signed in to change notification settings - Fork 9
/
SalesforceRestDataProvider.qm
104 lines (84 loc) · 4.82 KB
/
SalesforceRestDataProvider.qm
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
# -*- mode: qore; indent-tabs-mode: nil -*-
#! Qore SalesforceRestDataProvider module definition
/* SalesforceRestDataProvider.qm Copyright 2019 - 2022 Qore Technologies, s.r.o.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
*/
# minimum required Qore version
%requires qore >= 1.7
# assume local scope for variables, do not use "$" signs
%new-style
# require type definitions everywhere
%require-types
# strict argument handling
%strict-args
# enable all warnings
%enable-all-warnings
%requires(reexport) DataProvider
%requires(reexport) SalesforceRestClient
module SalesforceRestDataProvider {
version = "1.0.1";
desc = "user module providing a data provider API for Salesforce instances through the REST API";
author = "David Nichols <david@qore.org>";
url = "http://qore.org";
license = "MIT";
init = sub () {
# register the data provider factory
DataProvider::registerFactory(new SalesforceRestDataProviderFactory());
};
}
/** @mainpage SalesforceRestDataProvider Module
@tableofcontents
@section salesforcerestdataproviderintro Introduction to the SalesforceRestDataProvider Module
The %SalesforceRestDataProvider module provides a @ref dataproviderintro "data provider" API for the Salesforce
REST API to work with data under the \c "sobjects" URI path. The
@ref SalesforceRestDataProvider::SalesforceRestDataProvider "SalesforceRestDataProvider" class allows for
introspecting a Salesforce instance, while the
@ref SalesforceRestDataProvider::SalesforceRestObjectDataProvider "SalesforceRestObjectDataProvider" class
supports the @ref dataproviderintro "data provider" record-based API for communication with REST servers and
querying and manipulating data in the Salesforce instance.
Salesforce instances can be introspected with the following format:
- REST operation path: <tt><i>uri_path</i></tt>
- ex: <tt><b>Account</b></tt>
- results in a
@ref SalesforceRestDataProvider::SalesforceRestObjectDataProvider "SalesforceRestObjectDataProvider" object
where record operations supported on the object can be executed
The following classes are provided by this module:
- @ref SalesforceRestDataProvider::SalesforceRestDataProvider "SalesforceRestDataProvider"
- @ref SalesforceRestDataProvider::SalesforceRestDataProviderFactory "SalesforceRestDataProviderFactory"
- @ref SalesforceRestDataProvider::SalesforceRestObjectDataProvider "SalesforceRestObjectDataProvider"
- @ref SalesforceRestDataProvider::SalesforceRestRecordIterator "SalesforceRestRecordIterator"
@section salesforcerestdataprovider_queries Salesforce Queries
Queries are made by generating SOQL query strings from the where clause and search options. Note that the
Salesforce query API does not currently support server-side result set caching, so the entire result set is
returned by the server for each query and stored in memory when using the
@ref SalesforceRestDataProvider::SalesforceRestRecordIterator "SalesforceRestRecordIterator" class, so it's
recommended to limit query result set sizes using the \c limit search option.
@see
- @ref soql_soql_cop_funcs
- @ref soql_op_funcs
@section salesforcerestdataprovider_relnotes Release Notes
@subsection salesforcerestdataprovider_v1_0_1 SalesforceRestDataProvider v1.0.1
- fixed a bug deleting records with no matches
(<a href="https://github.com/qorelanguage/qore/issues/3921">issue 3921</a>)
- fixed serializing \c DATE fields
(<a href="https://github.com/qorelanguage/qore/issues/3908">issue 3908</a>)
@subsection salesforcerestdataprovider_v1_0 SalesforceRestDataProvider v1.0
- initial release of the module
*/
#! contains all public definitions in the SalesforceRestDataProvider module
public namespace SalesforceRestDataProvider {
}