commit
6cadd1264e
@ -0,0 +1,74 @@
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: Témoignages_Formulaire
|
||||
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
|
||||
steps:
|
||||
- name: setup_PHP_for_SonarQube
|
||||
image: php:8.1
|
||||
environment:
|
||||
SONAR_TOKEN:
|
||||
from_secret: SONARQ_TOKEN
|
||||
commands:
|
||||
- apt-get update && apt-get install -y unzip
|
||||
- export SONAR_SCANNER_VERSION=4.7.0.2747
|
||||
- export SONAR_SCANNER_HOME=$HOME/.sonar/sonar-scanner-$SONAR_SCANNER_VERSION-linux
|
||||
- curl --create-dirs -sSLo $HOME/.sonar/sonar-scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$SONAR_SCANNER_VERSION-linux.zip
|
||||
- unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/
|
||||
- export PATH=$SONAR_SCANNER_HOME/bin:$PATH
|
||||
- export SONAR_SCANNER_OPTS="-server"
|
||||
- sonar-scanner -D sonar.projectKey=SAE4.01_FORMULAIRE -D sonar.sources=. -D sonar.host.url=https://codefirst.iut.uca.fr/sonar
|
||||
|
||||
# docker image build
|
||||
- name: set_api_form
|
||||
image: plugins/docker
|
||||
settings:
|
||||
dockerfile: ./Source/API/Dockerfile
|
||||
context: Source/API
|
||||
registry: hub.codefirst.iut.uca.fr
|
||||
repo: hub.codefirst.iut.uca.fr/dorian.hodin/sae4.01_formulaire
|
||||
username:
|
||||
from_secret: SECRET_USERNAME
|
||||
password:
|
||||
from_secret: SECRET_PASSWD
|
||||
|
||||
# conteneur deployment
|
||||
- name: deploy_api_form
|
||||
image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
|
||||
environment:
|
||||
IMAGENAME: hub.codefirst.iut.uca.fr/dorian.hodin/sae4.01_formulaire:latest
|
||||
CONTAINERNAME: deploy_api_form
|
||||
COMMAND: create
|
||||
OVERWRITE: true
|
||||
CODEFIRST_CLIENTDRONE_ENV_HOST:
|
||||
from_secret: db_host
|
||||
CODEFIRST_CLIENTDRONE_ENV_DATABASE:
|
||||
from_secret: db_database
|
||||
CODEFIRST_CLIENTDRONE_ENV_USER:
|
||||
from_secret: db_user
|
||||
CODEFIRST_CLIENTDRONE_ENV_PASSWORD:
|
||||
from_secret: db_password
|
||||
CODEFIRST_CLIENTDRONE_ENV_ROOT_PASSWORD:
|
||||
from_secret: db_root_password
|
||||
depends_on: [ set_api_form ]
|
||||
|
||||
# database container deployment
|
||||
- name: db_form
|
||||
image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
|
||||
environment:
|
||||
IMAGENAME: mariadb:10.5
|
||||
CONTAINERNAME: db_form
|
||||
COMMAND: create
|
||||
CODEFIRST_CLIENTDRONE_ENV_MARIADB_ROOT_PASSWORD:
|
||||
from_secret: db_root_password
|
||||
CODEFIRST_CLIENTDRONE_ENV_MARIADB_DATABASE:
|
||||
from_secret: db_database
|
||||
CODEFIRST_CLIENTDRONE_ENV_MARIADB_USER:
|
||||
from_secret: db_user
|
||||
CODEFIRST_CLIENTDRONE_ENV_MARIADB_PASSWORD:
|
||||
from_secret: db_password
|
||||
depends_on: [ deploy_api_form ]
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GitToolBoxProjectSettings">
|
||||
<option name="commitMessageIssueKeyValidationOverride">
|
||||
<BoolValueOverride>
|
||||
<option name="enabled" value="true" />
|
||||
</BoolValueOverride>
|
||||
</option>
|
||||
<option name="commitMessageValidationEnabledOverride">
|
||||
<BoolValueOverride>
|
||||
<option name="enabled" value="true" />
|
||||
</BoolValueOverride>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,4 @@
|
||||
FROM php:8.0-apache
|
||||
RUN apt-get update && apt-get upgrade -y
|
||||
RUN docker-php-ext-install pdo pdo_mysql
|
||||
COPY ./script /var/www/html
|
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
class APIController
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
try {
|
||||
if (empty($_REQUEST['action'])) {
|
||||
$action = NULL;
|
||||
} else {
|
||||
$action = $_REQUEST['action'];
|
||||
}
|
||||
$listGateway = array(""); //TODO : nom des différentes Gateway à mettre
|
||||
foreach ($listGateway as $gateway) // Pour chaque Gateway
|
||||
{
|
||||
/* On regarde s'il implémente une fonction du même nom que l'action reçue */
|
||||
if(method_exists($gateway, $action))
|
||||
{
|
||||
(new $gateway)->$action(); // Si oui, on appelle cette fonction
|
||||
}
|
||||
}
|
||||
|
||||
} catch (PDOException) {
|
||||
return http_response_code(404);
|
||||
}
|
||||
exit(0);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
class Connection extends PDO
|
||||
{
|
||||
private PDOStatement $stmt;
|
||||
|
||||
public function __construct(string $dsn, string $username, string $password)
|
||||
{
|
||||
parent::__construct($dsn, $username, $password);
|
||||
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
}
|
||||
|
||||
|
||||
/** * @param string $query
|
||||
* @param array $parameters *
|
||||
* @return bool Returns `true` on success, `false` otherwise
|
||||
*/
|
||||
public function executeQuery(string $query, array $parameters = []): bool
|
||||
{
|
||||
$this->stmt = parent::prepare($query);
|
||||
foreach ($parameters as $name => $value) {
|
||||
$this->stmt->bindValue($name, $value[0], $value[1]);
|
||||
}
|
||||
|
||||
return $this->stmt->execute();
|
||||
}
|
||||
|
||||
public function getResults(): array
|
||||
{
|
||||
return $this->stmt->fetchAll();
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
require_once "./Connection.php";
|
||||
|
||||
function connect(): int|Connection
|
||||
{
|
||||
|
||||
$dsn = "mysql:host=".$_ENV["HOST"].";dbname=".$_ENV["DATABASE"].";";
|
||||
$login = $_ENV["USER"];
|
||||
$password = $_ENV["PASSWORD"];
|
||||
|
||||
try {
|
||||
|
||||
$connection = new Connection($dsn,$login,$password);
|
||||
|
||||
}catch (PDOException){
|
||||
|
||||
http_response_code(404);
|
||||
return http_response_code();
|
||||
}
|
||||
return $connection;
|
||||
}
|
Loading…
Reference in new issue