Removed greeting from repo

This commit is contained in:
2023-07-10 21:22:04 +02:00
parent 9a95cbcbc3
commit ed9da5ef79
6 changed files with 0 additions and 203 deletions
@@ -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;
}
@@ -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);
}
}