planningcenter_api 1.2.1 planningcenter_api: ^1.2.1 copied to clipboard
This package gives you full coverage of the latest, non-beta version of the PlanningCenter API for each PlanningCenter application.
1.2.1 #
- Attribute values returned by Planning Center are now coerced to their proper types without throwing errors. Note: if the Planning Center API sends data of an invalid type and we can't parse it into a proper type, the library will assume it's an empty value.
- Example: the following values will be parsed properly as boolean
true
:1
true
'true'
; however, all other values will befalse
- Example: if Planning Center sends a string value when we expected a
List
orMap
the string value will be ignored.
- Example: the following values will be parsed properly as boolean
1.2.0 #
- Ergonomic Change: Static get methods on classes and all
PlanningCenterApiQuery
objects now have a flaggetAll
which will automatically repeat API calls until all data has been retrieved. - Ergonomic Change: Static get methods come in more flavors.
getAll...
will automatically set thegetAll
flag to true, andgetSingle...
where available, will return a single instance of a class or null. - Breaking Change: Static methods previously used a variable
includeAll
that has been renamed toincludeAllRelated
1.1.4 #
PcoPeopleFieldDatum
can be queried according tofield_definition_id
(according to the API explorer) but it's not in the API Reference, so previous versions did not include this as a possible where query. This one does.
1.1.3 #
- removed the
PcoServicesCcliReporting
class since the Api has changed.
1.1.2 #
- The PCO JSON files mislabel the "time_type" attribute of the
PlanTime
object asinteger
when it really is astring
and will be one of the following values 'rehearsal', 'service', 'other' - Updating all applications to use the most recent API versions.
1.1.1 #
- Minor documentation update to the static
ClassName.get
functions.
1.1.0 #
- All previous
PlanningCenterApiQuery
options have now been replaced with class specific query objects.
1.0.0 #
- revised the architecture of class constructors so that you can now add any attribute exposed by the api in the constructor
relationships
andincludes
can be added to objects directly through the use of the class constructors- all class constructor arguments are named parameters now
- extension methods are now being used to customize code beyond what is automatically generated, this is especially useful when creating and saving donation items since the api requires specific
relationships
andincluded
values - modified the OAuth2 workflow to include a built-in default http server to make authentication callbacks work more easily.
- The entire Planning Center API should now be accessible through type-safe Dart code, and there should never be a need to call
PlanningCenter.instance.call()
directly. - TODO... there should be different
PlanningCenterApiQuery
options for each class... will work on that.
0.9.9 #
- all possible
include
items are now implemented as typed getters! include
getters now handle plural/singular includes for you, returning either Lists or nullable objects.
0.9.8 #
include
items for known objects are now implemented as typed getters and no longer as instance functions;include
items for unknown objects are still implemented as instance functions with type parameters;
0.9.7 #
- Any iterable may be used to populate the
include
andfilter
fields of aPlanningCenterApiQuery
0.9.6 #
- Changed relationships, links, and attributes from
Map.unmodifiable
to my ownReadOnlyMapView
for compile-time warnings instead of runtime exceptions. - Changed
include
andfilter
toSet<String>
to avoid api errors - Added individual boolean
include
flags to each method that can return an object:
var collection = await PcoPeoplePerson.get(id: '000000001', includeEmails: true);
0.9.5 #
- Made relationships, links, and attributes private and expose them as unmodifiable Maps.
0.9.4 #
- Fixed typed relationship getters for each class
0.9.3 #
- Adding a note discouraging users from accessing resource attributes directly.
- Added typed relationship getters for each class
- deprecated the
data
field on PcoCollection objects, useitems
moving forward.
0.9.2 #
- Actually including the file upload code into the repo.
0.9.1 #
- Bug fix
0.9.0 #
- PlanningCenterApiResponse now includes
data
asList<PlanningCenterApiData>
instead of aList<Map<String, dynamic>>
. PlanningCenterApiData
objects can also be used directly in api calls.- File uploads are now supported with the
PlanningCenterApiFile
class.
0.8.3 #
- Supports greater-than-or-equal and less-than-or-equal in where queries now.
0.8.2 #
- Fixing some dart analyze warnings.
0.8.1 #
- Replaced private class constructors (many were unused) with named
empty
constructors.
0.8.0 #
- Added named parameters to class factory constructors to make it easier to create new objects that can be immediately posted to PlanningCenter.
- Allow setters to take
null
to remove attributes from classes.
0.7.2 #
- Updated the
description
inpubspec.yaml
0.7.1 #
- Improved documentation for the
PlanningCenterApiQuery
class and all the classes that use it.
0.7.0 #
- Added an
extraParams
field to thePlanningCenterApiQuery
class so that some filters can properly be utilized. For example,PcoServicesPlan
can be filtered with anafter
filter, but to use theafter
filter, the API must also include anafter
url parameter. These additional parameters cannot be automatically generated from the API documentation, and so it is up to the end user to include them in theextraParams
field of thePlanningCenterApiQuery
object.
0.6.2 #
- Added an
error
getter to bothPcoCollection
and toPlanningCenterApiResponse
classes to more easily access the error values.
PcoCollection items = await plan.getItems();
if (items.isError) print(items.error!.errorMessage);
0.6.1 #
- Improved documentation by adding class attributes to the docstrings.
0.6.0 #
- Added
next
andgetMore
methods on thePcoCollection
class. - Removed
create
factory constructors. Now, the default constructors for each class operate the way thosecreate
constructors did, and only exist if an object can be created through the API on the server.
0.5.0 #
- Added
create
factory constructors to classes that represent assets that can be created through the API. NOTE: Creating an object does not create it on the server untilsave
is called.
0.4.1 #
- Removing old references to
DataClass
andPlanningCenterResource
classes
0.4.0 #
- Massive refactoring of the code generation methods and therefore massive changes to the function definitions all around.
- Much better documentation for each class and function
- Special attributes used only for create / update functions are now supported (i.e. setting a
songId
attribute on aPcoServicesItem
object) PcoResource
objects now have adelete
method.
0.3.0 #
- Most class methods return a PcoCollection
- PcoCollection
0.2.1 #
- fixed the readme
0.1.5 #
- added 'actions' exposed by the API. Actions exist as methods on class instances. Each is documented.
0.1.4 #
- added 'include' functionality
0.1.3 #
- basic oauth2 implemented without any dependencies, see the readme for how to use.
0.1.2 #
- Now handles "included" items in API results
- Added flags to easily get all includable items
- added static class getters to expose
canInclude
,canOrderBy
, andcanQuery
fields - preliminary work under the hood for oauth2 authentication
0.1.1 #
- Fixed readme bug
0.1.0 #
- Initial version... supports the latest non-beta Planning Center APIs as of 2021-11-18