Removed greeting from repo
This commit is contained in:
-59
@@ -1,59 +0,0 @@
|
||||
package de.twomartens.wahlrecht.controller.v1;
|
||||
|
||||
import de.twomartens.wahlrecht.mapper.v1.GreetingMapper;
|
||||
import de.twomartens.wahlrecht.model.dto.v1.Greeting;
|
||||
import de.twomartens.wahlrecht.service.GreetingService;
|
||||
import io.swagger.v3.oas.annotations.Hidden;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping(value = "/wahlrecht/v1")
|
||||
@Tag(name = "Greeting Example", description = "all requests relating to greetings")
|
||||
public class GreetingRestController {
|
||||
|
||||
private final GreetingMapper mapper = Mappers.getMapper(GreetingMapper.class);
|
||||
|
||||
private final GreetingService service;
|
||||
|
||||
@Operation(
|
||||
summary = "Returns a greeting message",
|
||||
responses = {@ApiResponse(
|
||||
responseCode = "200")
|
||||
}
|
||||
)
|
||||
@GetMapping("/greeting")
|
||||
public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
|
||||
return mapper.map(service.createGreeting(name));
|
||||
}
|
||||
|
||||
@Operation(
|
||||
summary = "Posts a greeting message to db",
|
||||
responses = {@ApiResponse(
|
||||
responseCode = "200")
|
||||
}
|
||||
)
|
||||
@PostMapping("/greeting")
|
||||
public void postGreeting(@RequestBody Greeting greeting) {
|
||||
service.postGreeting(mapper.map(greeting));
|
||||
}
|
||||
|
||||
@Hidden
|
||||
@GetMapping("/healthCheck")
|
||||
public String checkHealth(@RequestParam(value = "message") String message) {
|
||||
return message;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package de.twomartens.wahlrecht.mapper.v1;
|
||||
|
||||
import de.twomartens.wahlrecht.model.db.Greeting;
|
||||
import org.mapstruct.CollectionMappingStrategy;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.NullValueCheckStrategy;
|
||||
import org.mapstruct.ReportingPolicy;
|
||||
|
||||
@Mapper(collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED,
|
||||
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS,
|
||||
unmappedTargetPolicy = ReportingPolicy.IGNORE)
|
||||
public interface GreetingMapper {
|
||||
|
||||
de.twomartens.wahlrecht.model.dto.v1.Greeting map(Greeting greeting);
|
||||
|
||||
@Mapping(target = "id", ignore = true)
|
||||
@Mapping(target = "created", ignore = true)
|
||||
@Mapping(target = "lastModified", ignore = true)
|
||||
Greeting map(de.twomartens.wahlrecht.model.dto.v1.Greeting greeting);
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
package de.twomartens.wahlrecht.model.db;
|
||||
|
||||
import java.util.Date;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.FieldDefaults;
|
||||
import org.bson.types.ObjectId;
|
||||
import org.springframework.data.annotation.CreatedDate;
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.annotation.LastModifiedDate;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
@Document
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
@NoArgsConstructor(force = true, access = AccessLevel.PRIVATE)
|
||||
@AllArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public class Greeting {
|
||||
|
||||
@Id
|
||||
ObjectId id;
|
||||
|
||||
@CreatedDate
|
||||
Date created;
|
||||
|
||||
@LastModifiedDate
|
||||
Date lastModified;
|
||||
|
||||
String message;
|
||||
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package de.twomartens.wahlrecht.model.dto.v1;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.FieldDefaults;
|
||||
import org.springframework.lang.NonNull;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
@NoArgsConstructor(force = true, access = AccessLevel.PRIVATE)
|
||||
@AllArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
@Schema(description = "Data container for a greeting message")
|
||||
public class Greeting {
|
||||
|
||||
@NonNull
|
||||
@Schema(description = "Data container for a greeting message", example = "Hello Helmut!",
|
||||
defaultValue = "Hello World!")
|
||||
private final String message;
|
||||
|
||||
}
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
package de.twomartens.wahlrecht.repository;
|
||||
|
||||
import de.twomartens.wahlrecht.model.db.Greeting;
|
||||
import java.util.Optional;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
|
||||
public interface GreetingRepository extends MongoRepository<Greeting, String> {
|
||||
|
||||
Optional<Greeting> findByMessageIgnoreCase(String message);
|
||||
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
package de.twomartens.wahlrecht.service;
|
||||
|
||||
import de.twomartens.wahlrecht.model.db.Greeting;
|
||||
import de.twomartens.wahlrecht.property.ServiceProperties;
|
||||
import de.twomartens.wahlrecht.repository.GreetingRepository;
|
||||
import io.micrometer.core.instrument.Counter;
|
||||
import io.micrometer.core.instrument.MeterRegistry;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class GreetingService {
|
||||
|
||||
private final MeterRegistry meterRegistry;
|
||||
private final ServiceProperties serviceProperties;
|
||||
private final Counter counter;
|
||||
|
||||
private final GreetingRepository greetingRepository;
|
||||
|
||||
public GreetingService(MeterRegistry meterRegistry, ServiceProperties serviceProperties,
|
||||
GreetingRepository greetingRepository) {
|
||||
this.meterRegistry = meterRegistry;
|
||||
this.serviceProperties = serviceProperties;
|
||||
this.greetingRepository = greetingRepository;
|
||||
counter = meterRegistry.counter("wahlrecht.callCounter");
|
||||
}
|
||||
|
||||
public Greeting createGreeting(String name) {
|
||||
log.info("Create greeting for '{}'", name);
|
||||
counter.increment();
|
||||
meterRegistry.gauge("wahlrecht.nameLength", name.length());
|
||||
String greeting = serviceProperties.getGreeting();
|
||||
return Greeting.builder().message(String.format(greeting, name)).build();
|
||||
}
|
||||
|
||||
public void postGreeting(Greeting greeting) {
|
||||
greetingRepository.save(greeting);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user