Compare commits
11
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f45e213c3 | ||
|
|
d877d2fe03
|
||
|
|
66240c2d65 | ||
|
|
0654b65940
|
||
|
|
272ec3568d | ||
|
|
be4a2038e5
|
||
|
|
f305c97513
|
||
|
|
784037de6f | ||
|
|
6f27450423 | ||
|
|
bbaa2fe1eb | ||
|
|
28165d76d3 |
No files matched your search
Vendored
+59
@@ -0,0 +1,59 @@
|
||||
pipeline {
|
||||
agent {
|
||||
node {
|
||||
label 'mapguesser'
|
||||
customWorkspace 'workspace/mapguesser'
|
||||
}
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Install composer') {
|
||||
agent {
|
||||
dockerfile {
|
||||
filename 'docker/Dockerfile-test'
|
||||
dir '.'
|
||||
reuseNode true
|
||||
}
|
||||
}
|
||||
steps {
|
||||
sh 'composer install'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Unit Testing') {
|
||||
agent {
|
||||
dockerfile {
|
||||
filename 'docker/Dockerfile-test'
|
||||
dir '.'
|
||||
reuseNode true
|
||||
}
|
||||
}
|
||||
steps {
|
||||
sh 'vendor/bin/phpunit --log-junit unit_test_results.xml --testdox tests'
|
||||
}
|
||||
post {
|
||||
success {
|
||||
archiveArtifacts 'unit_test_results.xml'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Static Code Analysis') {
|
||||
agent {
|
||||
dockerfile {
|
||||
filename 'docker/Dockerfile-test'
|
||||
dir '.'
|
||||
reuseNode true
|
||||
}
|
||||
}
|
||||
steps {
|
||||
sh 'php -d memory_limit=1G vendor/bin/phpstan analyse -c phpstan.neon --error-format=prettyJson > static_code_analysis_results.json'
|
||||
}
|
||||
post {
|
||||
success {
|
||||
archiveArtifacts 'static_code_analysis_results.json'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
# MapGuesser
|
||||
|
||||
[](https://jenkins.e5tv.hu/job/mapguesser/job/develop/)
|
||||
|
||||
This is the MapGuesser Application project. This is a game about guessing where you are based on a street view panorama - inspired by existing applications.
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
FROM php:7.4.7-cli-buster
|
||||
|
||||
RUN apt-get update && apt-get install -y unzip
|
||||
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
||||
@@ -31,11 +31,11 @@ main {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
p, h1, h2, input, textarea, select, button, a, table {
|
||||
p, h1, h2, h3, input, textarea, select, button, a, table, label {
|
||||
font-family: 'Roboto', sans-serif;
|
||||
}
|
||||
|
||||
h1, h2 {
|
||||
h1, h2, h3 {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
@@ -55,7 +55,11 @@ h2, header.small h1 {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
p, h2 {
|
||||
h3 {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
p, h2, h3 {
|
||||
line-height: 150%;
|
||||
}
|
||||
|
||||
|
||||
@@ -75,16 +75,6 @@ div.mapItem>div.buttonContainer {
|
||||
grid-auto-flow: column;
|
||||
}
|
||||
|
||||
#restrictions {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
}
|
||||
|
||||
#restrictions h3 {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
#restrictions input {
|
||||
height: auto;
|
||||
margin: 0.5em;
|
||||
|
||||
@@ -112,11 +112,10 @@ class GameController implements ISecured
|
||||
public function createNewChallenge(): IContent
|
||||
{
|
||||
// create Challenge
|
||||
$challengeToken = rand();
|
||||
while ($this->challengeRepository->getByToken($challengeToken)) {
|
||||
// if a challenge with the same token already exists
|
||||
$challengeToken = rand();
|
||||
}
|
||||
do {
|
||||
// initiliaze or if a challenge with the same token already exists
|
||||
$challengeToken = mt_rand();
|
||||
} while ($this->challengeRepository->getByToken($challengeToken));
|
||||
|
||||
$challenge = new Challenge();
|
||||
$challenge->setToken($challengeToken);
|
||||
|
||||
@@ -8,6 +8,7 @@ use MapGuesser\Interfaces\Response\IContent;
|
||||
use MapGuesser\PersistentData\Model\Challenge;
|
||||
use MapGuesser\PersistentData\Model\Map;
|
||||
use MapGuesser\PersistentData\Model\Place;
|
||||
use MapGuesser\PersistentData\Model\PlaceInChallenge;
|
||||
use MapGuesser\PersistentData\PersistentDataManager;
|
||||
use MapGuesser\Repository\ChallengeRepository;
|
||||
use MapGuesser\Repository\GuessRepository;
|
||||
|
||||
@@ -57,10 +57,8 @@ class UserInChallengeRepository
|
||||
}
|
||||
|
||||
// validate token string
|
||||
foreach (str_split($token_str) as $char) {
|
||||
if (!(('0' <= $char && $char <= '9') || ('a' <= $char && $char <= 'f'))) {
|
||||
return null;
|
||||
}
|
||||
if (!ctype_xdigit($token_str)) {
|
||||
return null;
|
||||
}
|
||||
// convert token to int
|
||||
$token = hexdec($token_str);
|
||||
@@ -78,6 +76,6 @@ class UserInChallengeRepository
|
||||
$select->where('user_id', '=', $userId);
|
||||
$select->where('challenge_id', '=', $challenge->getId());
|
||||
|
||||
return $select->count();
|
||||
return $select->count() != 0;
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -43,7 +43,7 @@ TODO: condition!
|
||||
<p class="bold center marginTop marginBottom">OR</p>
|
||||
-->
|
||||
|
||||
<div id="restrictions">
|
||||
<div id="restrictions" class="marginTop marginBottom">
|
||||
<h3>Optional restrictions</h3>
|
||||
<div>
|
||||
<div>
|
||||
@@ -54,7 +54,7 @@ TODO: condition!
|
||||
<input type="range" id="timeLimit" name="timeLimit" min="10" max="1800" step="10" value="300" />
|
||||
</div>
|
||||
<div id="timeLimitType">
|
||||
Time limit
|
||||
<label>Time limit</label>
|
||||
<input type="radio" id="timeLimitTypeGame" name="timeLimitType" value="game" checked />
|
||||
<label for="timeLimitTypeGame">for the whole game</label>
|
||||
<input type="radio" id="timeLimitTypeRound" name="timeLimitType" value="round" />
|
||||
|
||||
Reference in new issue
Block a user