Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
60 changes: 60 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example.demo.controller</groupId>
<artifactId>demo-controller</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo controller</name>
<description>demo controller</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>21</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>
13 changes: 13 additions & 0 deletions src/main/java/com/example/demo/DemoControllerApplication.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoControllerApplication {

public static void main(String[] args) {
SpringApplication.run(DemoControllerApplication.class, args);
}

}
29 changes: 29 additions & 0 deletions src/main/java/com/example/demo/controller/GreetingController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.example.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GreetingController {

@GetMapping("/hello")
public String hello(){
return "Hello World!";
}

@GetMapping("/hello/{name}")
public String helloName(@PathVariable String name){
return "Hello " + name + "!";
}

@GetMapping("/add/{num1}/{num2}")
public String add(@PathVariable int num1,@PathVariable int num2) {
return "Sum: " + (num1 + num2);
}

@GetMapping("/multiply/{num1}/{num2}")
public String multiply(@PathVariable int num1, @PathVariable int num2) {
return "Product: " + (num1 * num2);
}
}
44 changes: 44 additions & 0 deletions src/main/java/com/example/demo/controller/TimeController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.example.demo.controller;

import com.example.demo.service.TimeService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
public class TimeController {
private final TimeService service;

public TimeController(TimeService service){
this.service = service;
}

@GetMapping("/time")
public String getTime(){
return service.getCurrentTime();

}
@GetMapping("/date")
public String getDate(){
return service.getCurrentDate();

}

@GetMapping("/day")
public String getDay(){
return service.getCurrentDayOfWeek();

}

@GetMapping("/all")
public Map<String, String> getAllTimeInfo(){
Map<String, String> response = new HashMap<>();
response.put("time", service.getCurrentTime());
response.put("date", service.getCurrentDate());
response.put("day", service.getCurrentDayOfWeek());
return response;
}

}
47 changes: 47 additions & 0 deletions src/main/java/com/example/demo/controller/WeatherController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.example.demo.controller;

import com.example.demo.service.WeatherService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/weather")
public class WeatherController {

private final WeatherService weatherService;

public WeatherController(WeatherService weatherService) {
this.weatherService = weatherService;
}

@GetMapping("/temperature")
public String temperature() {
return "Current temperature: " + weatherService.getCurrentTemperature() + "°C";
}

@GetMapping("/condition")
public String condition(){
return "Current condition " + weatherService.getWeatherCondition();
}

@GetMapping("/wind)")
public String wind(){
return "Current wind speed: " + weatherService.getWindSpeed() + "km/h";
}

@GetMapping("/all")
public Map<String, Object> getAllWeather(){
Map<String, Object> weatherData = new HashMap<>();
weatherData.put("temperature", weatherService.getCurrentTemperature());
weatherData.put("condition", weatherService.getWeatherCondition());
weatherData.put("windSpeed", weatherService.getWindSpeed());
return weatherData;
}
}



28 changes: 28 additions & 0 deletions src/main/java/com/example/demo/service/TimeService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.example.demo.service;

import org.springframework.stereotype.Service;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.TextStyle;
import java.util.Locale;

@Service
public class TimeService {

public String getCurrentTime() {
LocalTime time = LocalTime.now();
return time.toString();
}

public String getCurrentDate(){
LocalDate date = LocalDate.now();
return date.toString();
}

public String getCurrentDayOfWeek(){
LocalDate today = LocalDate.now();
return today.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.ENGLISH);
}
}
32 changes: 32 additions & 0 deletions src/main/java/com/example/demo/service/WeatherService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.example.demo.service;

import org.springframework.stereotype.Service;
import java.util.Random;

@Service
public class WeatherService {

private final Random random = new Random ();
private final String[] conditions = {"Sunny", "Rainy", "Cloudy", "Windy", };

public int getCurrentTemperature() {
return random.nextInt(50) - 10;
}

public String getWeatherCondition() {
int index = random.nextInt(conditions.length);
return conditions[index];
}

public int getWindSpeed() {
return random.nextInt(102);
}

}







1 change: 1 addition & 0 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
spring.application.name=demo controller
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.ironhack.example.demo;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class DemoControllerApplicationTests {

@Test
void contextLoads() {
}

}