-
Notifications
You must be signed in to change notification settings - Fork 132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OpenField Class #1044
Open
codygordon
wants to merge
11
commits into
move-coop:main
Choose a base branch
from
MoveOnOrg:openfield-connector
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
OpenField Class #1044
Changes from 9 commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
eccf70b
init openfield class
codygordon 9e807cf
update openfield doc example
codygordon 12a4d2c
openfield class - fix E501s
codygordon f9e3069
add openfield to root __init__
codygordon fa5c2ec
OF - use junction ID for DELETE people-labels
codygordon d7b11ff
openfield - create conversation code
codygordon bf6625a
openfield - add conversation-codes/people endpoints
codygordon 34b41ae
openfield - fix delete endpoint
codygordon 261eb4e
openfield - add update_conversation_code
codygordon ac74af9
openfield - use FailureException for errors
codygordon 6c1e346
Merge remote-tracking branch 'origin/main' into openfield-connector
codygordon File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
OpenField | ||
========= | ||
|
||
******** | ||
Overview | ||
******** | ||
|
||
`OpenField <https://openfield.ai/>`_ is a canvassing and VPB tool for organizing and election campaigns. | ||
`OpenField REST API <https://openfield.ai/wp-content/uploads/2024/02/redoc-static.html>`_ | ||
|
||
.. note:: | ||
Authentication | ||
OpenField requires `HTTP Basic Auth <https://en.wikipedia.org/wiki/Basic_access_authentication>`_. | ||
Clients with an OpenField account can obtain the domain, username, and password needed | ||
to access the OpenField API. | ||
|
||
********** | ||
Quickstart | ||
********** | ||
|
||
To instantiate the OpenField class, you can either store your OpenField API | ||
domain, username, and password as environmental variables (``OPENFIELD_DOMAIN``, | ||
``OPENFIELD_USERNAME``, and ``OPENFIELD_PASSWORD``, respectively) or pass in your | ||
domain, username, and password as arguments: | ||
|
||
.. code-block:: python | ||
|
||
from parsons import OpenField | ||
|
||
# First approach: Use API credentials via environmental variables | ||
openfield = OpenField() | ||
|
||
# Second approach: Pass API credentials as arguments | ||
openfield = OpenField(domain='myorg.openfield.ai', username='my_name', password='1234') | ||
|
||
You can then call various endpoints: | ||
|
||
.. code-block:: python | ||
|
||
# Create a new person | ||
person = { | ||
"first_name": 'John', | ||
"last_name": 'Smith', | ||
"prov_city": 'Boston', | ||
"prov_state": 'MA', | ||
"prov_zip_5": '02108' | ||
"email1": '[email protected]', | ||
"phone1": '2345678901', | ||
} | ||
openfield.create_person(person=person) | ||
|
||
# Fetch person | ||
person = openfield.retrieve_person(person_id=123) | ||
|
||
# Update person fields | ||
data= { | ||
"phone1": '5558765432', | ||
} | ||
updated_person = openfield.update_person(person_id=123, data=data) | ||
|
||
# Delete person | ||
openfield.destroy_person(person_id=123) | ||
|
||
*** | ||
API | ||
*** | ||
|
||
.. autoclass :: parsons.OpenField | ||
:inherited-members: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
from parsons.openfield.openfield import OpenField | ||
|
||
__all__ = ["OpenField"] |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great but don't forget to add a link to the connector to the sidebar