Skip to content
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

🎉 New Source: Paystack 🌟 #7214

Merged
merged 25 commits into from
Nov 1, 2021
Merged

Conversation

folusoogunlana
Copy link
Contributor

@folusoogunlana folusoogunlana commented Oct 20, 2021

What

paystack.com is a Payment Gateway and its REST API is similar to Stripe's. This Paystack API connector is implemented with Airbyte CDK.

How

Adds 8 critical streams based on Paystack's API, all supporting incremental

  • customers
  • disputes
  • invoices
  • refunds
  • settlements
  • subscriptions
  • transactions
  • transfers

Recommended reading order

  • BOOTSTRAP.md
  • README.md
  • spec.json
  • Schemas under schemas/*.json
  • source.py
  • streams.py

Test Runs

Screenshot 2021-10-20 at 08 56 45
Screenshot 2021-10-20 at 08 58 55

Pre-merge Checklist

Expand the relevant checklist and delete the others.

New Connector

Community member or Airbyter

  • Community member? Grant edit access to maintainers (instructions)
  • Secrets in the connector's spec are annotated with airbyte_secret
  • Unit & integration tests added and passing. Community members, please provide proof of success locally e.g: screenshot or copy-paste unit, integration, and acceptance test output. To run acceptance tests for a Python connector, follow instructions in the README. For java connectors run ./gradlew :airbyte-integrations:connectors:<name>:integrationTest.
  • Code reviews completed
  • Documentation updated
    • Connector's README.md
    • Connector's bootstrap.md. See description and examples
    • docs/SUMMARY.md
    • docs/integrations/<source or destination>/<name>.md including changelog. See changelog example
    • docs/integrations/README.md
    • airbyte-integrations/builds.md
  • PR name follows PR naming conventions
  • Connector added to connector index like described here

folusoogunlana and others added 15 commits October 9, 2021 14:50
* feat(67): add support for 'spec' using Python HTTP API source template and stripe as an example

* chore(67): add sample state and config

* feat(67): add check functionality for paystack source by fetching first customer

* feat(67): add support for discover and read customer stream

* feat(67): add paystack source connector to UI

* feat(67): update source definitions to use 0.1.0

Co-authored-by: Foluso Ogunlana <foluso_ogunlana@stearsng.com>
@CLAassistant
Copy link

CLAassistant commented Oct 20, 2021

CLA assistant check
All committers have signed the CLA.

@github-actions github-actions bot added area/connectors Connector related issues area/documentation Improvements or additions to documentation labels Oct 20, 2021
@folusoogunlana folusoogunlana marked this pull request as draft October 20, 2021 14:58
@folusoogunlana folusoogunlana marked this pull request as ready for review October 20, 2021 14:58
@folusoogunlana folusoogunlana changed the title 🌟 🎉 New Source: Paystack 🎉 New Source: Paystack 🌟 Oct 20, 2021
Copy link
Member

@marcosmarxm marcosmarxm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made a fast-review and made some comments! Looks great! I'll request another member to review your code too.

@folusoogunlana
Copy link
Contributor Author

thanks for your contribution @folusoogunlana it's possible to share the credentials with me (send in Slack) this will accelerate the tests.

This is a really good point. Though I don't want to share my test credentials as they have personally identifiable information, I'm going to reach out to Paystack and ask if I can get test credentials to test with.

It would be nice to get payloads for all the API endpoints which I've allowed to be empty in the acceptance tests.

@marcosmarxm
Copy link
Member

thanks for your contribution @folusoogunlana it's possible to share the credentials with me (send in Slack) this will accelerate the tests.

This is a really good point. Though I don't want to share my test credentials as they have personally identifiable information, I'm going to reach out to Paystack and ask if I can get test credentials to test with.

It would be nice to get payloads for all the API endpoints which I've allowed to be empty in the acceptance tests.

No problem! @harshithmullapudi already created an issue so we're going to create a sandbox account in Paystack.

@harshithmullapudi harshithmullapudi temporarily deployed to more-secrets November 1, 2021 17:31 Inactive
@harshithmullapudi harshithmullapudi merged commit 0e70491 into airbytehq:master Nov 1, 2021
harshithmullapudi added a commit that referenced this pull request Nov 1, 2021
* added credentials to ci for new source paystack

* format
lmossman pushed a commit that referenced this pull request Nov 3, 2021
* feat(67): add support for 'spec' using Python HTTP API source template and stripe as an example

* chore(67): add sample state and config

* feat(67): add check functionality for paystack source by fetching first customer

* feat(67): add support for discover and read customer stream

* feat(67): add paystack source connector to UI

* feat(67): update source definitions to use 0.1.0

* Hacktoberfest 67 paystack source (#1)

* feat(67): add support for 'spec' using Python HTTP API source template and stripe as an example

* chore(67): add sample state and config

* feat(67): add check functionality for paystack source by fetching first customer

* feat(67): add support for discover and read customer stream

* feat(67): add paystack source connector to UI

* feat(67): update source definitions to use 0.1.0

Co-authored-by: Foluso Ogunlana <foluso_ogunlana@stearsng.com>

* feat(67): update stream state cursor field to be integer and to match API record field name

* chore(67): add unit tests for source and streams

* chore(67): store formatted date time in state to match type of catalog

* chore(67): add configuration for acceptance integration tests

* docs(67): update docs and summary with paystack

* chore(67): add essential schemas to be catalogued for new streams

* feat(67): add support for critical streams - transactions subscriptions transfers refunds settlements

* docs(67): update image and bootstrap

* chore(67): update builds.md to include paystack badge

* docs(67): add changelog and source definition JSON file

* docs(67): add paystack to integrations readme

* chore(67): update check_connection to airbyte standard

* refactor to simplify streams and remove constants file

* fix(67): correct "null, null" values in schemas

* chore(67): update file formatting with gradle format

Co-authored-by: Foluso <5675998+foogunlana@users.noreply.github.com>
lmossman pushed a commit that referenced this pull request Nov 3, 2021
* added credentials to ci for new source paystack

* format
schlattk pushed a commit to schlattk/airbyte that referenced this pull request Jan 4, 2022
* feat(67): add support for 'spec' using Python HTTP API source template and stripe as an example

* chore(67): add sample state and config

* feat(67): add check functionality for paystack source by fetching first customer

* feat(67): add support for discover and read customer stream

* feat(67): add paystack source connector to UI

* feat(67): update source definitions to use 0.1.0

* Hacktoberfest 67 paystack source (#1)

* feat(67): add support for 'spec' using Python HTTP API source template and stripe as an example

* chore(67): add sample state and config

* feat(67): add check functionality for paystack source by fetching first customer

* feat(67): add support for discover and read customer stream

* feat(67): add paystack source connector to UI

* feat(67): update source definitions to use 0.1.0

Co-authored-by: Foluso Ogunlana <foluso_ogunlana@stearsng.com>

* feat(67): update stream state cursor field to be integer and to match API record field name

* chore(67): add unit tests for source and streams

* chore(67): store formatted date time in state to match type of catalog

* chore(67): add configuration for acceptance integration tests

* docs(67): update docs and summary with paystack

* chore(67): add essential schemas to be catalogued for new streams

* feat(67): add support for critical streams - transactions subscriptions transfers refunds settlements

* docs(67): update image and bootstrap

* chore(67): update builds.md to include paystack badge

* docs(67): add changelog and source definition JSON file

* docs(67): add paystack to integrations readme

* chore(67): update check_connection to airbyte standard

* refactor to simplify streams and remove constants file

* fix(67): correct "null, null" values in schemas

* chore(67): update file formatting with gradle format

Co-authored-by: Foluso <5675998+foogunlana@users.noreply.github.com>
schlattk pushed a commit to schlattk/airbyte that referenced this pull request Jan 4, 2022
…#7529)

* added credentials to ci for new source paystack

* format
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/connectors Connector related issues area/documentation Improvements or additions to documentation bounty community connectors/source/paystack
Projects
No open projects
Status: No status
Development

Successfully merging this pull request may close these issues.

7 participants