Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
252 commits
Select commit Hold shift + click to select a range
d24072f
Update TourGuideController.java
baderbbm Nov 29, 2023
ba2f4b8
Update TourGuideController.java
baderbbm Nov 29, 2023
6c440a7
Update TourGuideService.java
baderbbm Nov 29, 2023
13db5b5
Update TestTourGuideService.java
baderbbm Nov 29, 2023
9d35067
Update TourGuideController.java
baderbbm Nov 30, 2023
8904036
Update RewardsService.java
baderbbm Nov 30, 2023
4a2cc38
Update User.java
baderbbm Nov 30, 2023
c7a1e4a
Update RewardsService.java
baderbbm Dec 4, 2023
5646c58
Update RewardsService.java
baderbbm Dec 4, 2023
8f3a1c7
Update RewardsService.java
baderbbm Dec 4, 2023
59db401
Update TourGuideService.java
baderbbm Dec 5, 2023
6667c60
Update TourGuideService.java
baderbbm Dec 5, 2023
00cffa7
Update RewardsService.java
baderbbm Dec 5, 2023
d4c707e
Update TourGuideService.java
baderbbm Dec 7, 2023
4735c16
Create ci.yml
baderbbm Dec 10, 2023
fb37527
Update ci.yml
baderbbm Dec 10, 2023
fe26d03
Update ci.yml
baderbbm Dec 10, 2023
f015dfa
Update TestTourGuideService.java
baderbbm Dec 11, 2023
b947b32
Update TestPerformance.java
baderbbm Dec 11, 2023
12c445e
Update RewardsService.java
baderbbm Dec 11, 2023
f9097a2
Update TourGuideService.java
baderbbm Dec 11, 2023
ffa1356
Update TestPerformance.java
baderbbm Dec 11, 2023
aecf676
Update ci.yml
baderbbm Dec 13, 2023
e7f5756
bbb
baderbbm Dec 13, 2023
ee162e1
Create ci.yml
baderbbm Dec 13, 2023
16d3e50
Update ci.yml
baderbbm Dec 13, 2023
784d471
Réduire THREAD_POOL_SIZE à 40
baderbbm Dec 13, 2023
1d73125
Update ci.yml
baderbbm Dec 13, 2023
5a416de
Réduire THREAD_POOL_SIZE à 30
baderbbm Dec 13, 2023
cc57cbf
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 13, 2023
403cc73
Update ci.yml
baderbbm Dec 13, 2023
9ca86fa
Update ci.yml
baderbbm Dec 13, 2023
5e1ae33
Réduire THREAD_POOL_SIZE à 20
baderbbm Dec 13, 2023
1deebb5
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 13, 2023
14efb98
Update ci.yml
baderbbm Dec 13, 2023
9eef1fb
Réduire THREAD_POOL_SIZE à 10
baderbbm Dec 13, 2023
53e7414
Réduire User à 1000
baderbbm Dec 13, 2023
0a6a2dd
Update ci.yml
baderbbm Dec 13, 2023
c1e89d9
Réduire User à 100
baderbbm Dec 13, 2023
85338a4
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 13, 2023
d07a9b3
Update ci.yml
baderbbm Dec 13, 2023
83eada0
Réduire User à 10
baderbbm Dec 13, 2023
06c80c7
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 13, 2023
a6b1aad
Update ci.yml
baderbbm Dec 13, 2023
8dd61e3
Update ci.yml
baderbbm Dec 13, 2023
06cba71
Update ci.yml
baderbbm Dec 13, 2023
e0a2b61
Update ci.yml
baderbbm Dec 13, 2023
29bb194
Update ci.yml
baderbbm Dec 13, 2023
ee13a19
Update ci.yml
baderbbm Dec 13, 2023
b6293ed
Update ci.yml
baderbbm Dec 13, 2023
d4dcd78
Réduire User à 100
baderbbm Dec 13, 2023
00283ab
Update ci.yml
baderbbm Dec 13, 2023
93ff10a
Update ci.yml
baderbbm Dec 13, 2023
2a67e4e
Update ci.yml
baderbbm Dec 13, 2023
d5aedd3
Update ci.yml
baderbbm Dec 13, 2023
e5f3fac
Update ci.yml
baderbbm Dec 13, 2023
da637b0
Update ci.yml
baderbbm Dec 13, 2023
e460b30
Update ci.yml
baderbbm Dec 13, 2023
320bb08
Update ci.yml
baderbbm Dec 13, 2023
edd5ec4
Update ci.yml
baderbbm Dec 13, 2023
6502edc
Update ci.yml
baderbbm Dec 13, 2023
c8031f4
Update ci.yml
baderbbm Dec 13, 2023
5eeafd0
Update ci.yml
baderbbm Dec 13, 2023
42ecb71
Update ci.yml
baderbbm Dec 13, 2023
ab44efc
Update ci.yml
baderbbm Dec 13, 2023
a1af749
Réduire User à 10
baderbbm Dec 13, 2023
2d15daa
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 13, 2023
a17f540
Update ci.yml
baderbbm Dec 13, 2023
9f05d4f
Update ci.yml
baderbbm Dec 13, 2023
0f850fa
Update ci.yml
baderbbm Dec 13, 2023
64ec340
Update ci.yml
baderbbm Dec 13, 2023
ef17f82
Update ci.yml
baderbbm Dec 13, 2023
1b723b1
Réduire User à 100
baderbbm Dec 14, 2023
6f73010
Update ci.yml
baderbbm Dec 14, 2023
629b61a
Update ci.yml
baderbbm Dec 14, 2023
9fd41ae
Réduire User à 10
baderbbm Dec 14, 2023
06266d3
Update ci.yml
baderbbm Dec 14, 2023
dd81b68
Update ci.yml
baderbbm Dec 14, 2023
72dc612
Réduire User à 100
baderbbm Dec 14, 2023
c290844
Update ci.yml
baderbbm Dec 14, 2023
b9c6f23
Update ci.yml
baderbbm Dec 14, 2023
331c682
Update ci.yml
baderbbm Dec 14, 2023
24c58e4
Réduire User à 10
baderbbm Dec 14, 2023
f777b3e
Update ci.yml
baderbbm Dec 14, 2023
c63447e
Réduire User à 100
baderbbm Dec 14, 2023
bfb8674
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 14, 2023
c019879
Delete src/main/java/com/openclassrooms/tourguide/TourguideApplicatio…
baderbbm Dec 14, 2023
7f1d4e9
Add files via upload
baderbbm Dec 14, 2023
7bd0dc9
Réduire User à 10
baderbbm Dec 14, 2023
5c1ec70
Committing local changes before merge
baderbbm Dec 14, 2023
b1f158e
Committing local changes before pull
baderbbm Dec 14, 2023
70729b4
Update TourguideApplication.java
baderbbm Dec 14, 2023
4471d4a
Réduire User à 100
baderbbm Dec 14, 2023
f0fe5ab
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 14, 2023
ad00ad3
Update pom.xml
baderbbm Dec 14, 2023
dfb0a0a
po;
baderbbm Dec 14, 2023
e86a413
Committing local changes before pull
baderbbm Dec 14, 2023
a68fdd7
Update pom.xml
baderbbm Dec 14, 2023
b178fc5
pom
baderbbm Dec 14, 2023
8006749
Réduire User à 100
baderbbm Dec 14, 2023
01b50bc
Résoudre les conflits dans pom.xml
baderbbm Dec 14, 2023
44a5d66
Réduire User à 10
baderbbm Dec 14, 2023
04b4576
Update ci.yml
baderbbm Dec 14, 2023
cb524ed
Réduire User à 100
baderbbm Dec 14, 2023
650fc1a
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 14, 2023
bf80008
Update ci.yml
baderbbm Dec 14, 2023
0860c42
Réduire User à 10
baderbbm Dec 14, 2023
bc65bce
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 14, 2023
2232248
Update ci.yml
baderbbm Dec 14, 2023
a15ea6d
Réduire User à 1
baderbbm Dec 14, 2023
58e1ccc
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 14, 2023
b718fe1
Update ci.yml
baderbbm Dec 14, 2023
110f942
Réduire User à 10
baderbbm Dec 14, 2023
4fbf478
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 14, 2023
2eb2c66
Update ci.yml
baderbbm Dec 14, 2023
c2b0c4e
Réduire User à 1
baderbbm Dec 14, 2023
d2efa36
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 14, 2023
54eb8eb
Update ci.yml
baderbbm Dec 14, 2023
ae43914
Réduire User à 10
baderbbm Dec 14, 2023
7cd85ae
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 14, 2023
e67d520
Update ci.yml
baderbbm Dec 14, 2023
1a38373
Réduire User à 1
baderbbm Dec 14, 2023
722d507
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 14, 2023
d663291
Update ci.yml
baderbbm Dec 14, 2023
99e030e
Réduire User à 10
baderbbm Dec 14, 2023
71ba5b6
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 14, 2023
64465a6
Update ci.yml
baderbbm Dec 17, 2023
4f730bd
Réduire User à 1
baderbbm Dec 17, 2023
f901b0a
Update ci.yml
baderbbm Dec 17, 2023
af47b64
Réduire User à 10
baderbbm Dec 17, 2023
ba2039e
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Dec 17, 2023
fde7b2f
Update ci.yml
baderbbm Dec 17, 2023
4fd0fa4
Update ci.yml
baderbbm Dec 17, 2023
d26299e
Update ci.yml
baderbbm Dec 17, 2023
cdb5f3b
Update RewardsService.java
baderbbm Dec 17, 2023
ae4c80b
Merge pull request #3 from baderbbm/badr
baderbbm Dec 19, 2023
f361d5d
Réduire User à 10
baderbbm Dec 19, 2023
5d2781a
rew
baderbbm Dec 19, 2023
4160a24
Update ci.yml
baderbbm Dec 19, 2023
4d4c4c1
Update ci.yml
baderbbm Dec 19, 2023
73bb9f8
Réduire User à 1
baderbbm Dec 19, 2023
54eb8d7
Update ci.yml
baderbbm Dec 19, 2023
b04fdf8
Update ci.yml
baderbbm Dec 19, 2023
5a6d8e4
Réduire User à 10
baderbbm Dec 19, 2023
9c46df9
Réduire User à 1
baderbbm Dec 19, 2023
16c9dc5
Update InternalTestHelper.java
baderbbm Dec 19, 2023
594d398
Réduire User à 10
baderbbm Dec 20, 2023
b913350
R
baderbbm Dec 20, 2023
9093183
Réduire User à 10
baderbbm Dec 24, 2023
e67ded8
Réduire User à 10
baderbbm Dec 24, 2023
896be95
Reduire a 1
baderbbm Dec 24, 2023
fd73bd6
Reduire a 10
baderbbm Dec 24, 2023
48ab518
Update InternalTestHelper.java
baderbbm Dec 24, 2023
7410001
Update InternalTestHelper.java
baderbbm Dec 24, 2023
7c03378
Update InternalTestHelper.java
baderbbm Dec 24, 2023
c11c713
Description du commit
baderbbm Jan 5, 2024
3e03fba
Merge pull request #4 from baderbbm/badr
baderbbm Jan 5, 2024
7346c4d
Reduire a 100
baderbbm Jan 5, 2024
34e8e9c
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Jan 5, 2024
9cb56bb
Reduire a 1000
baderbbm Jan 5, 2024
8ab8fa1
Reduire a 1
baderbbm Jan 5, 2024
8729c41
Reduire a 10
baderbbm Jan 5, 2024
6c1dc7f
Merge pull request #6 from baderbbm/master
baderbbm Jan 5, 2024
ac8d92e
Update InternalTestHelper.java
baderbbm Jan 5, 2024
2652f79
Merge pull request #7 from baderbbm/badr
baderbbm Jan 5, 2024
a03d74f
Reduire a 1
baderbbm Jan 5, 2024
2b05f41
Update InternalTestHelper.java
baderbbm Jan 5, 2024
b42893a
Update InternalTestHelper.java
baderbbm Jan 5, 2024
388ba7e
Reduire a 10
baderbbm Jan 5, 2024
5c47e22
Update InternalTestHelper.java
baderbbm Jan 5, 2024
ad5a82e
Update InternalTestHelper.java
baderbbm Jan 5, 2024
06b4687
Update InternalTestHelper.java
baderbbm Jan 5, 2024
134d3c7
Reduire a 10
baderbbm Jan 5, 2024
69d02b1
Update InternalTestHelper.java
baderbbm Jan 5, 2024
20c30ca
Merge pull request #8 from baderbbm/badr
baderbbm Jan 5, 2024
594b72f
nb thread 1
baderbbm Jan 5, 2024
0ca9cdb
Merge pull request #9 from baderbbm/badr
baderbbm Jan 5, 2024
1a7537c
Merge pull request #10 from baderbbm/master
baderbbm Jan 5, 2024
f27561d
Update InternalTestHelper.java
baderbbm Jan 5, 2024
3ea4878
Merge pull request #11 from baderbbm/badr
baderbbm Jan 5, 2024
d343774
Reduire a 100
baderbbm Jan 5, 2024
6b6939b
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Jan 5, 2024
df8ae89
valeur 10
baderbbm Jan 5, 2024
c03ecff
valeur 100
baderbbm Jan 5, 2024
474a856
Reduire a 1
baderbbm Jan 5, 2024
fd0960e
Update InternalTestHelper.java
baderbbm Jan 5, 2024
8776647
Reduire a 1
baderbbm Jan 5, 2024
6991939
Merge pull request #12 from baderbbm/badr
baderbbm Jan 5, 2024
f31e91a
Reduire a 1
baderbbm Jan 5, 2024
edb3ace
Update InternalTestHelper.java
baderbbm Jan 5, 2024
90d04f9
Update InternalTestHelper.java
baderbbm Jan 5, 2024
17a208a
Update InternalTestHelper.java
baderbbm Jan 5, 2024
d2be263
Reduire a 1
baderbbm Jan 5, 2024
0849edb
Merge pull request #13 from baderbbm/badr
baderbbm Jan 5, 2024
33b14e5
Update RewardsService.java
baderbbm Jan 6, 2024
f47fb3c
Update RewardsService.java
baderbbm Jan 6, 2024
37bc8c0
Reduire a 100
baderbbm Jan 6, 2024
1ec2614
badr
baderbbm Jan 6, 2024
4650546
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Jan 6, 2024
76ab634
Reduire a 1000
baderbbm Jan 6, 2024
f39e8e4
Merge pull request #14 from baderbbm/badr
baderbbm Jan 6, 2024
cd5ffbe
Update InternalTestHelper.java
baderbbm Jan 6, 2024
5c6fbcf
Reduire a 1000
baderbbm Jan 6, 2024
73ba0e2
Update InternalTestHelper.java
baderbbm Jan 6, 2024
31f8daa
Update InternalTestHelper.java
baderbbm Jan 6, 2024
8f73f3d
Update InternalTestHelper.java
baderbbm Jan 6, 2024
ccf7690
Update InternalTestHelper.java
baderbbm Jan 6, 2024
cfdfd36
Reduire a 100
baderbbm Jan 6, 2024
641444c
BADR
baderbbm Jan 6, 2024
a77efe1
BADR
baderbbm Jan 6, 2024
4271fbd
BADR
baderbbm Jan 6, 2024
34b7d55
Reduire a 1000
baderbbm Jan 7, 2024
edbd8ed
BADR
baderbbm Jan 7, 2024
7c3f4d4
Merge pull request #15 from baderbbm/badr
baderbbm Jan 7, 2024
ade322f
Reduire a 100
baderbbm Jan 7, 2024
c30eb41
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Jan 7, 2024
0f4866d
Reduire a 1000
baderbbm Jan 7, 2024
1200631
Update InternalTestHelper.java
baderbbm Jan 7, 2024
29c1702
Merge pull request #16 from baderbbm/badr
baderbbm Jan 7, 2024
e65666b
Reduire a 100
baderbbm Jan 8, 2024
c64b73e
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Jan 8, 2024
88a8a5c
Reduire a 1000
baderbbm Jan 8, 2024
71d1811
Update InternalTestHelper.java
baderbbm Jan 8, 2024
31b31e8
Reduire a 100
baderbbm Jan 8, 2024
2ad33dc
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Jan 8, 2024
b076646
Reduire a 1000
baderbbm Jan 8, 2024
dbf7ac9
Reduire a 100
baderbbm Jan 8, 2024
4e85763
Reduire a 1000
baderbbm Jan 8, 2024
9ee273a
badr
baderbbm Jan 8, 2024
d58b204
Reduire a 100
baderbbm Jan 8, 2024
f75b2b3
Merge pull request #17 from baderbbm/badr
baderbbm Jan 8, 2024
41f7d73
Reduire a 1000
baderbbm Jan 8, 2024
ed1110d
Merge branch 'master' of https://github.com/baderbbm/ProjectSD
baderbbm Jan 8, 2024
e35cb34
Reduire a 100
baderbbm Jan 8, 2024
0a2995c
Update InternalTestHelper.java
baderbbm Jan 8, 2024
1c8143d
Merge pull request #18 from baderbbm/badr
baderbbm Jan 8, 2024
1ac52cf
Reduire a 1000
baderbbm Jan 8, 2024
146005f
badr
baderbbm Jan 8, 2024
a9dc228
badr
baderbbm Jan 8, 2024
268ce39
Merge pull request #19 from baderbbm/badr
baderbbm Jan 8, 2024
b957a3e
Reduire a 100
baderbbm Jan 8, 2024
f0f1582
badr
baderbbm Jan 8, 2024
69a457f
badr
baderbbm Jan 8, 2024
2656dde
Reduire a 1000
baderbbm Jan 11, 2024
37b1fde
Merge pull request #21 from baderbbm/badr
baderbbm Jan 11, 2024
1b72a3a
Reduire a 1000
baderbbm Jan 11, 2024
1416420
badr
baderbbm Jan 11, 2024
f0679cd
Reduire a 100
baderbbm Jan 12, 2024
7f487fa
Merge pull request #22 from baderbbm/badr
baderbbm Jan 12, 2024
edc22a3
Delete src/main/java/com/nnk/springboot directory
baderbbm Jan 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: CI

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
build:
runs-on: windows-latest

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

- name: Set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '17'

- name: Install local dependencies
run: |
mvn install:install-file "-Dfile=libs/gpsUtil.jar" "-DgroupId=gpsUtil" "-DartifactId=gpsUtil" "-Dversion=1.0.0" "-Dpackaging=jar"
mvn install:install-file "-Dfile=libs/RewardCentral.jar" "-DgroupId=rewardCentral" "-DartifactId=rewardCentral" "-Dversion=1.0.0" "-Dpackaging=jar"
mvn install:install-file "-Dfile=libs/TripPricer.jar" "-DgroupId=tripPricer" "-DartifactId=tripPricer" "-Dversion=1.0.0" "-Dpackaging=jar"

- name: Build with Maven
run: mvn -B package

- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: my-artifacts
path: target/
33 changes: 33 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/

### VS Code ###
.vscode/
Binary file added .mvn/wrapper/maven-wrapper.jar
Binary file not shown.
2 changes: 2 additions & 0 deletions .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.5/apache-maven-3.9.5-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
38 changes: 38 additions & 0 deletions TourGuide/.github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: CI

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
build:
runs-on: windows-latest

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

- name: Set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '17'

- name: Install local dependencies
run: |
mvn install:install-file "-Dfile=libs/gpsUtil.jar" "-DgroupId=gpsUtil" "-DartifactId=gpsUtil" "-Dversion=1.0.0" "-Dpackaging=jar"
mvn install:install-file "-Dfile=libs/RewardCentral.jar" "-DgroupId=rewardCentral" "-DartifactId=rewardCentral" "-Dversion=1.0.0" "-Dpackaging=jar"
mvn install:install-file "-Dfile=libs/TripPricer.jar" "-DgroupId=tripPricer" "-DartifactId=tripPricer" "-Dversion=1.0.0" "-Dpackaging=jar"

- name: Build with Maven
run: mvn -B package

- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: my-artifacts
path: target/
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
package com.openclassrooms.tourguide;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import gpsUtil.location.Attraction;
import gpsUtil.location.VisitedLocation;

import com.openclassrooms.tourguide.dto.AttractionInfo;
import com.openclassrooms.tourguide.service.TourGuideService;
import com.openclassrooms.tourguide.user.User;
import com.openclassrooms.tourguide.user.UserReward;

import tripPricer.Provider;

@RestController
Expand Down Expand Up @@ -41,11 +39,20 @@ public VisitedLocation getLocation(@RequestParam String userName) {
// The distance in miles between the user's location and each of the attractions.
// The reward points for visiting each Attraction.
// Note: Attraction reward points can be gathered from RewardsCentral

/*
@RequestMapping("/getNearbyAttractions")
public List<Attraction> getNearbyAttractions(@RequestParam String userName) {
VisitedLocation visitedLocation = tourGuideService.getUserLocation(getUser(userName));
return tourGuideService.getNearByAttractions(visitedLocation);
}
*/

@RequestMapping("/getNearbyAttractions")
public List<AttractionInfo> getNearbyAttractions(@RequestParam String userName) {
VisitedLocation visitedLocation = tourGuideService.getUserLocation(getUser(userName));
return tourGuideService.getNearByAttractions(visitedLocation, getUser(userName));
}

@RequestMapping("/getRewards")
public List<UserReward> getRewards(@RequestParam String userName) {
Expand All @@ -60,6 +67,4 @@ public List<Provider> getTripDeals(@RequestParam String userName) {
private User getUser(String userName) {
return tourGuideService.getUser(userName);
}


}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package com.openclassrooms.tourguide.dto;

public class AttractionInfo {
private String name;
private double attractionLatitude;
private double attractionLongitude;
private double userLatitude;
private double userLongitude;
private double distance;
private int rewardPoints;

public AttractionInfo(String name, double attractionLatitude, double attractionLongitude,
double userLatitude, double userLongitude, double distance, int rewardPoints) {
this.name = name;
this.attractionLatitude = attractionLatitude;
this.attractionLongitude = attractionLongitude;
this.userLatitude = userLatitude;
this.userLongitude = userLongitude;
this.distance = distance;
this.rewardPoints = rewardPoints;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public double getAttractionLatitude() {
return attractionLatitude;
}

public void setAttractionLatitude(double attractionLatitude) {
this.attractionLatitude = attractionLatitude;
}

public double getAttractionLongitude() {
return attractionLongitude;
}

public void setAttractionLongitude(double attractionLongitude) {
this.attractionLongitude = attractionLongitude;
}

public double getUserLatitude() {
return userLatitude;
}

public void setUserLatitude(double userLatitude) {
this.userLatitude = userLatitude;
}

public double getUserLongitude() {
return userLongitude;
}

public void setUserLongitude(double userLongitude) {
this.userLongitude = userLongitude;
}

public double getDistance() {
return distance;
}

public void setDistance(double distance) {
this.distance = distance;
}

public int getRewardPoints() {
return rewardPoints;
}

public void setRewardPoints(int rewardPoints) {
this.rewardPoints = rewardPoints;
}
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
package com.openclassrooms.tourguide.service;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Service;

import org.springframework.stereotype.Service;
import gpsUtil.GpsUtil;
import gpsUtil.location.Attraction;
import gpsUtil.location.Location;
import gpsUtil.location.VisitedLocation;
import rewardCentral.RewardCentral;
import com.openclassrooms.tourguide.user.User;
import com.openclassrooms.tourguide.user.UserReward;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

@Service
public class RewardsService {
Expand All @@ -23,6 +27,13 @@ public class RewardsService {
private final GpsUtil gpsUtil;
private final RewardCentral rewardsCentral;

private static final int THREAD_POOL_SIZE = 50;


public static int getThreadPoolSize() {
return THREAD_POOL_SIZE;
}

public RewardsService(GpsUtil gpsUtil, RewardCentral rewardCentral) {
this.gpsUtil = gpsUtil;
this.rewardsCentral = rewardCentral;
Expand All @@ -36,21 +47,94 @@ public void setDefaultProximityBuffer() {
proximityBuffer = defaultProximityBuffer;
}


// parcourir la liste des emplacements visités par l'utilisateur (userLocations)
// et des attractions, tout en modifiant la liste des récompenses de l'utilisateur (user.getUserRewards())
// vous modifiez la liste user.getUserRewards() en ajoutant des éléments à l'intérieur de la boucle \

/*
public void calculateRewards(User user) {
List<VisitedLocation> userLocations = user.getVisitedLocations();
// List<VisitedLocation> userLocations = user.getVisitedLocations();
List<VisitedLocation> userLocations = new ArrayList<>(user.getVisitedLocations());
List<Attraction> attractions = gpsUtil.getAttractions();

for(VisitedLocation visitedLocation : userLocations) {
for(Attraction attraction : attractions) {
if(user.getUserRewards().stream().filter(r -> r.attraction.attractionName.equals(attraction.attractionName)).count() == 0) {
if(nearAttraction(visitedLocation, attraction)) {
user.addUserReward(new UserReward(visitedLocation, attraction, getRewardPoints(attraction, user)));
List<UserReward> newRewards = new ArrayList<UserReward>();
for (VisitedLocation visitedLocation : userLocations) {

for (Attraction attraction : attractions) {
//if (user.getUserRewards().stream().filter(r -> r.attraction.attractionName.equals(attraction.attractionName)).count() == 0) {
if (newRewards.stream().filter(r -> r.attraction.attractionName.equals(attraction.attractionName)).count() == 0) {
if (nearAttraction(visitedLocation, attraction)) {
// user.addUserReward(new UserReward(visitedLocation, attraction, getRewardPoints(attraction, user)));
newRewards.add(new UserReward(visitedLocation, attraction, getRewardPoints(attraction, user)));
}
}
}
}
}
user.setUserRewards(newRewards);
}


*/
public void calculateRewards(User user) {
List<VisitedLocation> userLocations = new ArrayList<>(user.getVisitedLocations());
List<Attraction> attractions = gpsUtil.getAttractions();

List<UserReward> newRewards = new ArrayList<>();

userLocations.stream()
// Applique une fonction à chaque élément du flux (chaque VisitedLocation), produisant un flux interne
// pour chaque VisitedLocation. Le flux interne est créé à partir des attractions
// qui sont proches de la VisitedLocation actuelle
.flatMap(visitedLocation ->
attractions.stream()
.filter(attraction -> nearAttraction(visitedLocation, attraction))
.filter(attraction -> newRewards.stream()
// si aucun élément du flux newRewards correspond à l'attraction actuelle
.noneMatch(r -> r.attraction.attractionName.equals(attraction.attractionName)))
// Transforme chaque attraction filtrée en un objet UserReward
.map(attraction -> new UserReward(visitedLocation, attraction, getRewardPoints(attraction, user)))
)
// Ajoute chaque UserReward résultant à la liste newRewards
.forEach(newRewards::add);

user.setUserRewards(newRewards);
}



// Un pool de 50 threads est créé.
// Ensuite, une tâche est soumise à ce pool pour chaque utilisateur dans la liste users.
// Ces tâches sont exécutées en parallèle, avec un maximum de 50 tâches simultanées
// à un moment donné, grâce au pool de threads

public void calculateRewardsAsync(List<User> users) {
// Créez un ExecutorService avec le nombre souhaité de threads
ExecutorService executorService = Executors.newFixedThreadPool(THREAD_POOL_SIZE);

// Créez un CountDownLatch avec un compte égal au nombre d'utilisateurs
CountDownLatch countDownLatch = new CountDownLatch(users.size());

// Soumettez des tâches pour chaque utilisateur
for (User user : users) {
executorService.submit(() -> {
// System.out.println(user.getEmailAddress()+" performed by "+ Thread.currentThread().getName());
calculateRewards(user);
countDownLatch.countDown(); // Diminuez le compte lorsque la tâche est terminée
});
}

// Attendez que toutes les tâches soient terminées (besoin du test)
try {
countDownLatch.await(); // Cela attend indéfiniment jusqu'à ce que toutes les tâches soient terminées
} catch (InterruptedException e) {
e.printStackTrace();
}

// Arrêtez l'ExecutorService
executorService.shutdown();
}

public boolean isWithinAttractionProximity(Attraction attraction, Location location) {
return getDistance(attraction, location) > attractionProximityRange ? false : true;
}
Expand All @@ -59,7 +143,7 @@ private boolean nearAttraction(VisitedLocation visitedLocation, Attraction attra
return getDistance(attraction, visitedLocation.location) > proximityBuffer ? false : true;
}

private int getRewardPoints(Attraction attraction, User user) {
public int getRewardPoints(Attraction attraction, User user) {
return rewardsCentral.getAttractionRewardPoints(attraction.attractionId, user.getUserId());
}

Expand All @@ -76,5 +160,4 @@ public double getDistance(Location loc1, Location loc2) {
double statuteMiles = STATUTE_MILES_PER_NAUTICAL_MILE * nauticalMiles;
return statuteMiles;
}

}
Loading