A Scala (Java compatible) implementation of the MailChimp api, version 3.
Currently not available in a distributed manner via either maven or sbt. (Will be in maven, sbt in the future.)
In development, certainly not production ready yet.
Requires a JDK of version 8 or above (because of external dependencies).
The usage of the library is fairly simple:
- Instantiate a Config object with an api key and your endpoint
usX.api.mailchimp.com/v3
(please note: NO trailing slash; NO protocol specification please.) - Pass the Config object to any operations you want to execute. Enjoy.
- We use scalatest for testing.
Pull requests are welcomed and credit will be given where due. Please do include tests with your PR.
- Please respect the 80 character (soft) limit (wherever reasonable.)
- Identation is done by spaces
- Two (2) spaces in Scala sourcecode;
- Four (4) spaces in Java sourcecode.
Licensed under the generally permissive MIT license.
Consult the license file for more information.
- We follow semantic versioning guidelines. (SemVer v2.0.0)
- Currently only the basic auth variant of the available authentication methods provided by MailChimp is implemented. Future versions will support both.
- All trademarks, service marks, trade names, trade dress, product names appearing in this library's (source and documentation) are the property of their respective owners.
Througout the code there are various todos left, which will be acceptable until a Production release is issued (1.0.0)
- There are quite a lot
//@TODO stricten up.
comments. These are to indicate that technically these fields do not accept a string, but are more like an Enum: they accept just a couple of values there. It is the ambition of this library to make those more rigid, typesafe. - Some testscenario's are really far from ideal. There is no definitive decission
on whether we should mock the entire API of MailChimp or sacrifice on reproduceability
and transparency of builds and work against the real api (which we are doing now.)
- Input on this subject is more than welcome.
- Implemented the
GET /lists/{list_id}/members/{subscriber-hash}
operation - Implemented the
PATCH /lists/{list_id}/members/{subscriber-hash}
operation
- Improving usability of the lib in Java:
- It is fairly complicated to instantiate a
None
in Java, which makes the DTO case classes as they are right now pretty useless. Also, the default arguments forReadOnlyField
s are not respected in Java. Therefore added constructor methods to the case classes that are more Java friendly.
- It is fairly complicated to instantiate a
- Implemented the
GET /list/{list_id}/segments
operation (partly, see issues #2, #3.) - Implemented the
POST /list/{list_id}/segments
operation (partly, see aforementioned remark) - Implemented the
GET /list/{list_id}/merge-fields
operation - Implemented the
POST /list/{list_id}/merge-fields
operation
- Set up of basic project structure:
- Instantiate a Config
- Load it in any operation you want to execute
- Execute the operations and enjoy your MailChimp communication.
- For tests
- ENV-var based API contact (for integration tests)
- Implemented a credential testing operation
- Implemented the
GET /lists
operation (currently ignoring the modules field.) - Implemented the
GET /list/{list_id}
operation (in the same manner as mentioned for/lists
) - Implemented the
POST /lists
operation - Implemented the
GET /lists/{list_id}/members
operation - Implemented the
POST /lists/{list_id}/members
operation