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