diff --git a/.drone.yml b/.drone.yml index e69de29..864eaff 100644 --- a/.drone.yml +++ b/.drone.yml @@ -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 ] diff --git a/.idea/git_toolbox_prj.xml b/.idea/git_toolbox_prj.xml new file mode 100644 index 0000000..02b915b --- /dev/null +++ b/.idea/git_toolbox_prj.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml index 639f74d..b2ca53c 100644 --- a/.idea/php.xml +++ b/.idea/php.xml @@ -9,7 +9,7 @@ - + diff --git a/Source/API/Dockerfile b/Source/API/Dockerfile new file mode 100644 index 0000000..8a4ee87 --- /dev/null +++ b/Source/API/Dockerfile @@ -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 \ No newline at end of file diff --git a/Source/API/script/APIController.php b/Source/API/script/APIController.php new file mode 100644 index 0000000..5e85c66 --- /dev/null +++ b/Source/API/script/APIController.php @@ -0,0 +1,29 @@ +$action(); // Si oui, on appelle cette fonction + } + } + + } catch (PDOException) { + return http_response_code(404); + } + exit(0); + } + +} diff --git a/Source/API/script/Config/Connection.php b/Source/API/script/Config/Connection.php new file mode 100644 index 0000000..942a479 --- /dev/null +++ b/Source/API/script/Config/Connection.php @@ -0,0 +1,33 @@ +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(); + + } +} diff --git a/Source/API/script/Config/config.php b/Source/API/script/Config/config.php new file mode 100644 index 0000000..c5f00a2 --- /dev/null +++ b/Source/API/script/Config/config.php @@ -0,0 +1,22 @@ +