• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

torresj / email-register-api / 17

23 Jul 2025 02:17PM UTC coverage: 53.704%. Remained the same
17

push

circleci

Jaime Torres Benavente
response updated

0 of 2 new or added lines in 1 file covered. (0.0%)

58 of 108 relevant lines covered (53.7%)

0.54 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

14.29
/src/main/java/com/torresj/email_register_api/controllers/EmailController.java
1
package com.torresj.email_register_api.controllers;
2

3
import com.torresj.email_register_api.dtos.DeleteRequestDto;
4
import com.torresj.email_register_api.dtos.RegisterRequestDto;
5
import com.torresj.email_register_api.exceptions.EmailAlreadyExistException;
6
import com.torresj.email_register_api.exceptions.InvalidEmailException;
7
import com.torresj.email_register_api.servicies.EmailService;
8
import io.swagger.v3.oas.annotations.Operation;
9
import io.swagger.v3.oas.annotations.media.ArraySchema;
10
import io.swagger.v3.oas.annotations.media.Content;
11
import io.swagger.v3.oas.annotations.media.Schema;
12
import io.swagger.v3.oas.annotations.responses.ApiResponse;
13
import io.swagger.v3.oas.annotations.responses.ApiResponses;
14
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
15
import lombok.RequiredArgsConstructor;
16
import lombok.extern.slf4j.Slf4j;
17
import org.springframework.http.ResponseEntity;
18
import org.springframework.security.access.prepost.PreAuthorize;
19
import org.springframework.web.bind.annotation.DeleteMapping;
20
import org.springframework.web.bind.annotation.GetMapping;
21
import org.springframework.web.bind.annotation.PostMapping;
22
import org.springframework.web.bind.annotation.RequestBody;
23
import org.springframework.web.bind.annotation.RequestMapping;
24
import org.springframework.web.bind.annotation.RestController;
25

26
import java.util.List;
27

28
@RestController
29
@RequestMapping("/v1/emails")
30
@Slf4j
1✔
31
@RequiredArgsConstructor
32
public class EmailController {
33

34
    private final EmailService emailService;
35

36
    @Operation(summary = "Register email", security = @SecurityRequirement(name = "basicScheme"))
37
    @ApiResponses(
38
            value = {
39
                    @ApiResponse(
40
                            responseCode = "200",
41
                            description = "Registered"
42
                    ),
43
            })
44
    @PostMapping()
45
    @PreAuthorize("hasAnyRole('USER','ADMIN')")
46
    public ResponseEntity<String> register(
47
            @io.swagger.v3.oas.annotations.parameters.RequestBody(
48
                    description = "Email to be registered",
49
                    required = true,
50
                    content = @Content(schema = @Schema(implementation = RegisterRequestDto.class)))
51
            @RequestBody RegisterRequestDto request
52
    ) throws InvalidEmailException, EmailAlreadyExistException {
53
        emailService.register(request.getEmail());
×
NEW
54
        return ResponseEntity.ok("{\"status\":\"Registered\"}");
×
55
    }
56

57
    @Operation(summary = "Get registered emails", security = @SecurityRequirement(name = "basicScheme"))
58
    @ApiResponses(
59
            value = {
60
                    @ApiResponse(
61
                            responseCode = "200",
62
                            description = "ok",
63
                            content = {
64
                                    @Content(
65
                                            mediaType = "application/json",
66
                                            array = @ArraySchema(schema = @Schema(implementation = String.class)))
67
                            }
68
                    ),
69
            })
70
    @GetMapping()
71
    @PreAuthorize("hasRole('ADMIN')")
72
    public ResponseEntity<List<String>> getEmails() {
73
        var emails = emailService.getEmails();
×
74
        return ResponseEntity.ok(emails);
×
75
    }
76

77
    @Operation(summary = "Delete email", security = @SecurityRequirement(name = "basicScheme"))
78
    @ApiResponses(
79
            value = {
80
                    @ApiResponse(
81
                            responseCode = "200",
82
                            description = "Deleted"
83
                    ),
84
            })
85
    @DeleteMapping()
86
    @PreAuthorize("hasRole('ADMIN')")
87
    public ResponseEntity<String> remove(
88
            @io.swagger.v3.oas.annotations.parameters.RequestBody(
89
                    description = "Email to be deleted",
90
                    required = true,
91
                    content = @Content(schema = @Schema(implementation = DeleteRequestDto.class)))
92
            @RequestBody DeleteRequestDto request
93
    ) throws InvalidEmailException {
94
        emailService.remove(request.getEmail());
×
NEW
95
        return ResponseEntity.ok("{\"status\":\"Deleted\"}");
×
96
    }
97
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc