Skip to content

Commit

Permalink
CC-14610 Unzer Payment System Provider (#12)
Browse files Browse the repository at this point in the history
CC-14610 Unzer Payment System Provider
  • Loading branch information
kkicheglovspryker authored Jun 6, 2022
1 parent 2c32119 commit 04d76b7
Show file tree
Hide file tree
Showing 141 changed files with 10,208 additions and 0 deletions.
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 http://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
33 changes: 33 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# 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

# 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
137 changes: 137 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
name: CI

env:
APPLICATION_ENV: 'development'
APPLICATION_STORE: 'DE'
PROJECT: 'UnzerApi'
DATABASE_VERSION: 10.2
DATABASE_HOST: 127.0.0.1
DATABASE_PORT: 3306
DATABASE_NAME: eu-docker
DATABASE_USERNAME: root
DATABASE_PASSWORD: secret
DATABASE_ROOT_PASSWORD: secret
DATABASE_ALLOW_EMPTY_PASSWORD: false
DATABASE_CHARACTER_SET: utf8
DATABASE_COLLATE: utf8_general_ci

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

jobs:
setup:
name: Setup Database MariaDB
runs-on: ubuntu-18.04

steps:
- uses: actions/checkout@v2
- uses: getong/[email protected]
with:
host port: ${{ env.DATABASE_PORT }}
container port: ${{ env.DATABASE_PORT }}
character set server: ${{ env.DATABASE_CHARACTER_SET }}
collation server: ${{ env.DATABASE_COLLATE }}
mariadb version: ${{ env.DATABASE_VERSION }}
mysql database: ${{ env.DATABASE_NAME }}
mysql root password: ${{ env.DATABASE_ROOT_PASSWORD }}
mysql user: ${{ env.DATABASE_USERNAME }}
mysql password: ${{ env.DATABASE_PASSWORD }}

ci:
name: UnzerApi (PHP ${{ matrix.php-versions }})
needs: setup
runs-on: ubuntu-18.04

strategy:
fail-fast: false
matrix:
php-versions:
- '7.4'
- '8.1'

services:
mariadb:
image: mariadb:10.2
env:
MYSQL_ALLOW_EMPTY_PASSWORD: false
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: eu-docker
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

steps:
- name: Checkout@v2
uses: actions/checkout@v2

- name: Setup PHP ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, intl, bcmath, pdo_mysql

- name: Get composer cache directory
id: composer-cache
run: |
echo "::set-output name=dir::$(composer config cache-files-dir)"
- uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.php-versions }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-${{ matrix.php-versions }}-composer-

- name: Composer validate
run: composer validate

- name: Composer version
run: composer --version

- name: Composer install
# if: steps.cache.outputs.cache-hit != 'true'
run: composer install --prefer-dist --no-interaction --optimize-autoloader

- name: PHP syntax validation
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" )

- name: Check codestyle checks
run: composer cs-check

- name: Run codeception tests
run: composer test

- name: Run PHPStan checks
run: composer stan


lowest:
name: Unzer Prefer Lowest (PHP ${{ matrix.php-versions }})
runs-on: ubuntu-18.04

steps:
- name: Checkout
uses: actions/checkout@v2

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

- 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

- name: Prefer lowest installation
run: composer require --dev dereuromark/composer-prefer-lowest;

- name: PHP syntax validation
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" )

- name: Prefer lowest validation
run: vendor/bin/validate-prefer-lowest -m
37 changes: 37 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# 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
tests/app/*
4 changes: 4 additions & 0 deletions .license
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/**
* MIT License
* For full license information, please view the LICENSE file that was distributed with this source code.
*/
24 changes: 24 additions & 0 deletions .scrutinizer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
build:
environment:
php: '7.4'

tests:
override:
- true # disable test execution on scrutinizer

nodes:
analysis:
tests:
override:
- php-scrutinizer-run

checks:
php:
code_rating: true

filter:
excluded_paths:
- config/*
- tests/*
- src/Generated/*
- src/Pyz/*
13 changes: 13 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
The MIT License (MIT)

Copyright (c) 2016-present Spryker Systems GmbH

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# UnzerApi Module
[![CI](https://github.com/spryker-eco/unzer-api/actions/workflows/ci.yml/badge.svg)](https://github.com/spryker-eco/unzer-api/actions/workflows/ci.yml)
[![Latest Stable Version](https://poser.pugx.org/spryker-eco/unzer-api/v/stable.svg)](https://packagist.org/packages/spryker-eco/unzer-api)
[![License](https://img.shields.io/github/license/spryker-eco/unzer-api.svg?b=master)](https://github.com/spryker-eco/unzer-api)

[![CI](https://scrutinizer-ci.com/g/spryker-eco/unzer-api/badges/build.png?b=master)](https://scrutinizer-ci.com/g/spryker-eco/unzer-api/build-status/master)
[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%207.4-8892BF.svg)](https://php.net/)

UnzerApi module provides Unzer API HTTP communication layer.

## Installation
```
composer require spryker-eco/unzer-api
```
## Documentation
[Documentation](https://docs.spryker.com/industry_partners/payment/unzer-api/unzer-api-details.htm)
1 change: 1 addition & 0 deletions architecture-baseline.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
26 changes: 26 additions & 0 deletions codeception.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
namespace: UnzerApi

include:
- tests/SprykerEcoTest/Zed/UnzerApi

actor: Tester

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

settings:
bootstrap: _bootstrap.php
suite_class: \PHPUnit_Framework_TestSuite
colors: true
memory_limit: 1024M
log: true

coverage:
enabled: true
whitelist: { include: ['src/*'] }

bootstrap: bootstrap.php
64 changes: 64 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{
"name": "spryker-eco/unzer-api",
"type": "library",
"description": "UnzerApi module",
"license": "MIT",
"require": {
"php": ">=7.4",
"psr/http-message": "^1.0.1",
"spryker/guzzle": "^2.2.0",
"spryker/kernel": "^3.30.0",
"spryker/symfony": "^3.0.0",
"spryker/transfer": "^3.25.0",
"spryker/util-encoding": "^2.0.0"
},
"require-dev": {
"codeception/module-asserts": "^1.3.0",
"phpstan/phpstan": "^1.2.0",
"spryker/application": "^3.0.0",
"spryker/code-sniffer": "*",
"spryker/error-handler": "*",
"spryker/log": "*",
"spryker/monolog": "*",
"spryker/propel": "*",
"spryker/propel-orm": "*",
"spryker/queue": "*",
"spryker/testify": "*"
},
"autoload": {
"psr-4": {
"SprykerEco\\": "src/SprykerEco/"
}
},
"autoload-dev": {
"psr-4": {
"SprykerEcoTest\\": "tests/SprykerEcoTest/",
"Config\\Module\\": "vendor/spryker/config/tests/_support/Module",
"Propel\\Module\\": "vendor/spryker/propel/tests/_support/Module",
"Transfer\\Module\\": "vendor/spryker/transfer/tests/_support/Module"
}
},
"minimum-stability": "dev",
"prefer-stable": true,
"scripts": {
"cs-check": "phpcs -p -s --standard=vendor/spryker/code-sniffer/SprykerStrict/ruleset.xml src/ tests/",
"cs-fix": "phpcbf -p --standard=vendor/spryker/code-sniffer/SprykerStrict/ruleset.xml src/ tests/",
"stan": "vendor/bin/phpstan analyse",
"test": "vendor/bin/codecept run",
"lowest": "validate-prefer-lowest",
"lowest-setup": "composer update --prefer-lowest --prefer-stable --prefer-dist --no-interaction && cp composer.json composer.backup && composer require --dev dereuromark/composer-prefer-lowest && mv composer.backup composer.json"
},
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"process-timeout": 600,
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true
}
}
}
Loading

0 comments on commit 04d76b7

Please sign in to comment.