Skip to content

Commit

Permalink
ACP-2626: Stripe for marketplace payment flow, OMS updates, payouts t…
Browse files Browse the repository at this point in the history
…o Stripe for merchants (#10998)

ACP-2626 Stripe Marketplace Payment Flow- Marketplace OMS Workflow & Transfers to Merchants
  • Loading branch information
stereomon authored Aug 6, 2024
0 parents commit 01fa769
Show file tree
Hide file tree
Showing 55 changed files with 2,143 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .coveralls.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
coverage_clover: tests/_output/coverage.xml
json_path: tests/_output/coveralls-upload.json
service_name: travis-ci
14 changes: 14 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
; This file is for unifying the coding style for different editors and IDEs.
; More information at https://editorconfig.org
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.bat]
end_of_line = crlf

36 changes: 36 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Define the line ending behavior of the different file extensions
# Set the default behavior, in case people don't have core.autocrlf set.
* text text=auto eol=lf

*.php diff=php

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.gif binary
*.jpeg binary
*.zip binary
*.phar binary
*.ttf binary
*.woff binary
*.woff2 binary
*.eot binary
*.ico binary
*.mo binary
*.pdf binary
*.xsd binary
*.exe binary

# Remove files for archives generated using `git archive`
dependency.json export-ignore
phpstan.json export-ignore
phpstan.neon export-ignore
psalm-report.json export-ignore linguist-generated=true
tooling.yml export-ignore
.coveralls.yml export-ignore
.travis.yml export-ignore
.editorconfig export-ignore
.gitattributes export-ignore
.gitignore export-ignore
architecture-baseline.json export-ignore
.github/ export-ignore
52 changes: 52 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: CI

on:
push:
branches:
- 'master'
pull_request:
workflow_dispatch:

jobs:
validation:
name: Validation
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: mbstring, intl, bcmath
coverage: none

- name: Composer Install
run: composer install --prefer-dist --no-interaction --profile

- name: Run validation
run: composer validate

- name: Syntax check
run: find ./src -path src -prune -o -type f -name '*.php' -print0 | xargs -0 -n1 -P4 php -l -n | (! grep -v "No syntax errors detected" )

lowest:
name: Prefer Lowest
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
extensions: mbstring, intl, bcmath
coverage: none

- name: Composer Install
run: composer install --prefer-dist --no-interaction --profile

- name: Composer Update
run: composer update --prefer-lowest --prefer-dist --no-interaction --profile -vvv
36 changes: 36 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# IDE
.idea/
.project/
nbproject/
.buildpath/
.settings/
*.sublime-*

# OS
.DS_Store
*.AppleDouble
*.AppleDB
*.AppleDesktop

# grunt stuff
.grunt
.sass-cache
/node_modules/

# tooling
vendor/
composer.lock
.phpunit.result.cache

# built client resources
src/*/Zed/*/Static/Public
src/*/Zed/*/Static/Assets/sprite

# Propel classes
src/*/Zed/*/Persistence/Propel/Base/*
src/*/Zed/*/Persistence/Propel/Map/*

# tests
tests/**/_generated/
tests/_output/*
!tests/_output/.gitkeep
5 changes: 5 additions & 0 deletions .scrutinizer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
tools:
external_code_coverage: true
checks:
php:
code_rating: true
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# KernelApp Changelog

[Release Changelog](https://github.com/spryker/kernel-app/releases)
46 changes: 46 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
CODE CONTRIBUTION LICENSE AGREEMENT

BY DISPLAYING, PUBLISHING, UPLOADING OR PROMOTING (COLLECTIVELY, “POSTING”) SOURCE CODE (“SOURCE CODE”)
TO SPRYKER SYSTEMS GMBH, REGISTERED WITH THE COMMERCIAL REGISTER OF THE LOWER COURT OF HAMBURG UNDER
HRB 134310 (“WE”, “US” OR ”SPRYKER”), YOU AGREE TO THIS CODE CONTRIBUTION LICENSE AGREEMENT (THE “AGREEMENT”).

You grant us and our affiliates an irrevocable, perpetual, worldwide, royalty-free, non-exclusive, unrestricted
license and right to use, reproduce and store, disseminate and otherwise exploit, modify, delete from, add to,
create derivative works of, publicly perform, publicly display, reproduce, exchange parts of Source Code or combine them with
other Source Code, use in data networks and distribute with or without consideration and without limitations as to the
number of items via all distribution channels (and to sublicense the foregoing rights through multiple tiers of licensees)
of such Source Code and any other copyright protected material for any reason and in connection with advertising and
promoting our software and/or our products in any media formats and through any channels now existing or developed in
the future. The transfer and assignment of rights covers any usage and exploitation rights for any unknown types of use
as well as with regard to any known types of use the right to unrestrictedly make publicly available and publish,
irrespective of the medium including any editions and versions and grant simple or exclusive usage, exploitation or
adaptation rights to third parties.

Spryker may reject, refuse to post or delete any Source Code for any or no reason, including, without limitation.

From time to time, we may remove the Source Code permanently or temporarily, provided that even if we do remove such
Source Code, we shall have no obligation to cease our other uses of the Source Code as permitted above.

You agree to be fully responsible for and to pay any and all royalties, fees, and any other monies owing any person or
entity by reason of any Source Code posted by you.

Spryker respects the intellectual property of others, and requires that you do the same. Your postings and the Source Code
must not infringe any copyright, patent, trademark, trade secret or other proprietary rights or other rights of any person
or entity and you may not upload, embed, post, email, transmit or otherwise make available Source Code, software or any other
material that that infringes such rights.

YOU GUARANTEE THAT: (I) YOU OWN THE SOURCE CODE POSTED BY YOU OR OTHERWISE HAVE THE RIGHT TO GRANT THE LICENSES AND RIGHTS
SET FORTH ABOVE, AND (II) THE POSTING OF YOUR SOURCE CODE DOES NOT VIOLATE THE PRIVACY RIGHTS, PUBLICITY RIGHTS, CONTRACT RIGHTS,
INTELLECTUAL PROPERTY OR ANY OTHER RIGHTS OF ANY PERSON OR ENTITY OR ANY APPLICABLE LAW.

YOU AGREE TO INDEMNIFY AND HOLD SPRYKER, ITS SUBSIDIARIES, AND AFFILIATES, AND THEIR RESPECTIVE OFFICERS, AGENTS, PARTNERS
AND EMPLOYEES, HARMLESS FROM ANY LOSS, LIABILITY, COST, EXPENSE, CLAIM OR DEMAND, INCLUDING WITHOUT LIMITATION, REASONABLE
ATTORNEYS’ FEES, DUE OR RELATING TO OR ARISING OUT OF THE USE OF YOUR SOURCE CODE IN VIOLATION OF THIS AGREEMENT AND/OR
ARISING FROM A BREACH OF ANY TERMS OF THIS AGREEMENT AND/OR ANY BREACH OF YOUR REPRESENTATIONS AND WARRANTIES SET FORTH IN
THIS AGREEMENT AND/OR ARISING OUT OF OR RELATING TO ANY SOURCE CODE THAT YOU POST.

This Agreement shall be governed by the laws of Germany to the exclusion of IPR (International Law) and the United Nations Convention
on Contracts for the International Sale of Goods (CISG). The parties consent to the jurisdiction of the courts in Berlin (Germany).

This Agreement constitutes the entire agreement between you and us concerning Spryker’s use of the Source Code. This Agreement
supersedes any prior verbal understanding between the parties. This Agreement may be amended only in a writing signed by an authorized officer of Spryker.
27 changes: 27 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
SPRYKER - LICENSE AGREEMENT FOR EVALUATION OF AND EARLY ACCESS TO SOFTWARE

SPRYKER SYSTEMS GMBH, REGISTERED WITH THE COMMERCIAL REGISTER OF THE LOWER COURT OF HAMBURG UNDER HRB 134310 ("WE" OR "SPRYKER") GRANTS YOU ("LICENSEE") THE RIGHT TO USE THE SOFTWARE (AS DEFINED BELOW) UNDER THE PROVISIONS OF THIS LICENSE AGREEMENT FOR EVALUATION AND EARLY ACCESS (THE "AGREEMENT").

For the purposes of this Agreement, the "Software" includes any software, which is owned and made available (i) by Spryker for evaluation purposes or (ii) as part of Spryker`s early access program under this Agreement.

Spryker grants to Licensee, (i) during the 45-calendar-day period (the "Evaluation Period") following the first download of the Software or (ii) during the period it makes available a feature, module or functionality as part of its early access program (the "Early Access Period"), the non-transferable, non-exclusive limited, free of charge license (for (i) the "Evaluation License" or for (ii) the "Early Access License", as applicable, both a "License") to permit Licensee and/or Licensee`s employees to internally use the Software to test and evaluate the Software. In case of the Evaluation License, Licensee will not be granted the license under this Agreement for one particular piece of the Software more than once.

Under the License granted in this Agreement, Licensee shall not (i) use the Software to set up a production live system, for development purposes or any other purposes apart from evaluating and testing the Software; (ii) copy any part of the Software except to make one copy for back-up purposes; (iii) distribute, disclose, market, rent, lease, or transfer the Software or act as a service bureau with respect to the Software; (iv) export the Software or install it in multiple locations; (v) disclose any confidential information provided by Spryker; (vi) modify or make derivative works of the Software; or (vii) allow others to make or obtain copies of the Software.

The use of the Software in a production environment, to the extent permitted at all, requires prior conclusion of a separate agreement between Spryker and Licensee. Spryker will not support any versions of the Software being provided for evaluation purposes or as part of Spryker`s early access program. The provision of the Software as part of Spryker`s early access program does not necessarily mean it will be released as part of Spryker`s products in the future.

The Software may contain elements of open source components, to which different license terms apply respectively. Licensee may need to install these open source components separately.

THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND. SPRYKER DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, TITLE, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. SPRYKER WILL NOT BE LIABLE FOR ANY DAMAGES ASSOCIATED WITH THE SOFTWARE, INCLUDING WITHOUT LIMITATION ORDINARY, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES OF ANY KIND, INCLUDING BUT NOT LIMITED TO DAMAGES RELATING TO LOST DATA OR LOST PROFITS, EVEN IF SPRYKER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Licensee can provide input, suggestions, suggest or recommend changes or enhancements of the Software ("Feedback"). Any Feedback provided by Licensee is not considered confidential information and is received and treated by Spryker on a non-confidential and unrestricted basis. Licensee grants Spryker a sub-licenseable right to use, distribute, disclose and/or incorporate it into the Software or other products of Spryker, free of charge and without restriction as to time and place.

Licensee`s License to use the Software under this Agreement shall terminate on the earlier of (i) the expiration of the Evaluation Period or the Early Access Period (as applicable), or (ii) the date both parties enter into a definitive agreement for the provision by Spryker to Licensee of a full non-evaluation license to Spryker`s software.

Upon termination of the License as provided under this Agreement, Licensee shall promptly destroy the Software and any back-up copy of the Software made during the Evaluation Period or Early Access Period if Spryker and Licensee have not agreed a non-evaluation license to Spryker`s software.

This Agreement shall be governed by the laws of Germany to the exclusion of IPR (International Law) and the United Nations Convention on Contracts for the International Sale of Goods (CISG). The parties consent to the jurisdiction of the courts in Berlin (Germany).

This Agreement and/or the License is not assignable or transferable by Licensee and any attempt to do so is null and void.

This Agreement constitutes the entire agreement between the parties concerning Licensee`s use of the Software. This Agreement supersedes any prior verbal understanding between the parties. This Agreement may be amended only in a writing signed by an authorized officer of Spryker.
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# KernelApp Module
[![Latest Stable Version](https://poser.pugx.org/spryker/kernel-app/v/stable.svg)](https://packagist.org/packages/spryker/kernel-app)
[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%208.1-8892BF.svg)](https://php.net/)

KernelApp is the basic module for all other modules that are used with ACP Apps, it's the extended heart of Spryker. It provides a communication layer between SCOS and Apps.

## Installation

```
composer require spryker/kernel-app
```

## Documentation

[Spryker Documentation](https://docs.spryker.com)
1 change: 1 addition & 0 deletions architecture-baseline.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
19 changes: 19 additions & 0 deletions codeception.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
namespace: SprykerTest

include:
- tests/SprykerTest/AsyncApi/KernelApp/
- tests/SprykerTest/Client/
- tests/SprykerTest/Zed/KernelApp/

paths:
tests: tests
support: .
output: tests/_output
data: tests/_data
envs: tests/_envs

settings:
suite_class: \PHPUnit\Framework\TestSuite
colors: true
memory_limit: 1024M
log: true
53 changes: 53 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"name": "spryker/kernel-app",
"type": "library",
"description": "KernelApp module",
"license": "proprietary",
"require": {
"php": ">=8.1",
"spryker/guzzle": "^2.0.0",
"spryker/kernel": "^3.30.0",
"spryker/message-broker-extension": "^1.0.0",
"spryker/symfony": "^3.17.0",
"spryker/transfer": "^3.27.0",
"spryker/util-encoding": "^2.0.0"
},
"require-dev": {
"psr/http-message": "^1.1 || ^2.0",
"spryker/code-sniffer": "*",
"spryker/container": "*",
"spryker/kernel-app-extension": "*",
"spryker/message-broker": "*",
"spryker/propel": "*",
"spryker/ramsey-uuid": "*",
"spryker/testify": "*"
},
"autoload": {
"psr-4": {
"Spryker\\": "src/Spryker/",
"SprykerTest\\Shared\\KernelApp\\Helper\\": "tests/SprykerTest/Shared/KernelApp/_support/Helper/"
}
},
"autoload-dev": {
"psr-4": {
"SprykerTest\\": "tests/SprykerTest/"
}
},
"minimum-stability": "dev",
"prefer-stable": true,
"scripts": {
"cs-check": "phpcs -p -s --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml src/ tests/",
"cs-fix": "phpcbf -p --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml src/ tests/"
},
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"config": {
"sort-packages": true,
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true
}
}
}
5 changes: 5 additions & 0 deletions dependency.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"include": {
"spryker/transfer": "Provides transfer objects definition with strict types."
}
}
9 changes: 9 additions & 0 deletions phpstan.neon
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
parameters:
level: 8
checkMissingIterableValueType: false
reportUnmatchedIgnoredErrors: false
dynamicConstantNames:
- APPLICATION
- APPLICATION_ENV
- APPLICATION_STORE
- APPLICATION_CODE_BUCKET
6 changes: 6 additions & 0 deletions psalm-report.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

43 changes: 43 additions & 0 deletions resources/api/asyncapi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
asyncapi: 2.6.0
info:
title: 'PBC AsyncAPI definition.'
version: 0.1.0
channels:
app-events:
publish:
message:
oneOf:
- $ref: '#/components/messages/AppConfigUpdated'
components:
messages:
AppConfigUpdated:
x-spryker:
module: AppConfig
name: AppConfigUpdated
title: Contains information about an updated App configuration.
summary: 'Contains information about an updated App configuration.'
payload:
$ref: '#/components/schemas/AppConfigUpdated'
headers:
$ref: '#/components/schemas/message-broker/components/schemas/headers'
schemas:
AppConfigUpdated:
type: object
properties:
appIdentifier:
type: string
description: The app identifier to identify the PBC.
status:
type: boolean
description: The status of PBC (new, connected).
isActive:
type: boolean
config:
type: array
required:
- appIdentifier
- status
- isActive
- config
message-broker:
$ref: 'https://raw.githubusercontent.com/spryker/message-broker/1.6.0/resources/api/template.yml'
Loading

0 comments on commit 01fa769

Please sign in to comment.