Skip to content

Instantly share code, notes, and snippets.

@hakaneroztekin
Last active June 16, 2022 13:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hakaneroztekin/9d58a4c56df02c93ed78db91b9493559 to your computer and use it in GitHub Desktop.
Save hakaneroztekin/9d58a4c56df02c93ed78db91b9493559 to your computer and use it in GitHub Desktop.
docker-spring-main-method [spring in a nutshell]
@RestController
@RequestMapping("/")
@RequiredArgsConstructor
public class GreetingsController {
private static final String DOCUMENT_KEY = "clickCount";
private final ClickCountRepository clickCountRepository;
@GetMapping
public String printClickCount() {
long clickCountInDatabase = getClickCountInDatabase();
long incrementedClickCount = incrementClickCountInDatabase(clickCountInDatabase);
return "Hello, this page is visited " + incrementedClickCount + " times.";
}
private long getClickCountInDatabase() {
boolean documentExists = clickCountRepository.existsById(DOCUMENT_KEY);
System.out.println("document exists? " + documentExists);
if (documentExists) {
ClickCount clickCount = clickCountRepository.findById(DOCUMENT_KEY).get();
System.out.println("returning existing document with count " + clickCount.getCount());
return clickCount.getCount();
}
long clickCountInDatabase = 0;
System.out.println("document doesn't exist, creating a new document with count " + clickCountInDatabase);
saveClickCount(clickCountInDatabase);
return clickCountInDatabase;
}
private long incrementClickCountInDatabase(long clickCountInDatabase) {
long incrementedClickCount = clickCountInDatabase + 1;
System.out.println("incremented click count to " + incrementedClickCount);
ClickCount savedClickCount = saveClickCount(incrementedClickCount);
return savedClickCount.getCount();
}
private ClickCount saveClickCount(long clickCount) {
return clickCountRepository.save(ClickCount.builder().id(DOCUMENT_KEY).count(clickCount).build());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment