Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,6 @@ http

ROADMAP

.env
.env

sonar.txt
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ plugins {
}

group = 'com.flexcodelabs'
version = '0.0.4'
version = '0.0.5'
description = 'Flextuma App'

java {
Expand Down
19 changes: 19 additions & 0 deletions src/main/java/com/flexcodelabs/flextuma/core/config/WebConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.flexcodelabs.flextuma.core.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.data.web.PageableHandlerMethodArgumentResolver;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.List;

@Configuration
public class WebConfig implements WebMvcConfigurer {

@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
resolver.setOneIndexedParameters(true);
resolvers.add(resolver);
}
}
63 changes: 63 additions & 0 deletions src/main/java/com/flexcodelabs/flextuma/core/dto/ApiResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package com.flexcodelabs.flextuma.core.dto;

public class ApiResponse<T> {
private boolean success;
private T data;
private ErrorResponse error;
private String message;

private ApiResponse(boolean success, T data, ErrorResponse error, String message) {
this.success = success;
this.data = data;
this.error = error;
this.message = message;
}

public static <T> ApiResponse<T> success(T data) {
return new ApiResponse<>(true, data, null, null);
}

public static <T> ApiResponse<T> success(T data, String message) {
return new ApiResponse<>(true, data, null, message);
}

public static <T> ApiResponse<T> error(ErrorResponse error) {
return new ApiResponse<>(false, null, error, null);
}

public static <T> ApiResponse<T> error(ErrorResponse error, String message) {
return new ApiResponse<>(false, null, error, message);
}

public boolean isSuccess() {
return success;
}

public T getData() {
return data;
}

public ErrorResponse getError() {
return error;
}

public String getMessage() {
return message;
}

public void setSuccess(boolean success) {
this.success = success;
}

public void setData(T data) {
this.data = data;
}

public void setError(ErrorResponse error) {
this.error = error;
}

public void setMessage(String message) {
this.message = message;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
package com.flexcodelabs.flextuma.core.dto;

import java.time.LocalDateTime;

public class ErrorResponse {
private String message;
private String errorCode;
private int status;
private LocalDateTime timestamp;

public ErrorResponse() {
this.timestamp = LocalDateTime.now();
}

public ErrorResponse(String message, String errorCode, int status) {
this();
this.message = message;
this.errorCode = errorCode;
this.status = status;
}

public static ErrorResponse of(String message, String errorCode, int status) {
return new ErrorResponse(message, errorCode, status);
}

public static ErrorResponse badRequest(String message) {
return new ErrorResponse(message, "BAD_REQUEST", 400);
}

public static ErrorResponse unauthorized(String message) {
return new ErrorResponse(message, "UNAUTHORIZED", 401);
}

public static ErrorResponse forbidden(String message) {
return new ErrorResponse(message, "FORBIDDEN", 403);
}

public static ErrorResponse notFound(String message) {
return new ErrorResponse(message, "NOT_FOUND", 404);
}

public static ErrorResponse conflict(String message) {
return new ErrorResponse(message, "CONFLICT", 409);
}

public static ErrorResponse tooManyRequests(String message) {
return new ErrorResponse(message, "TOO_MANY_REQUESTS", 429);
}

public static ErrorResponse internalServerError(String message) {
return new ErrorResponse(message, "INTERNAL_SERVER_ERROR", 500);
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

public String getErrorCode() {
return errorCode;
}

public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}

public int getStatus() {
return status;
}

public void setStatus(int status) {
this.status = status;
}

public LocalDateTime getTimestamp() {
return timestamp;
}

public void setTimestamp(LocalDateTime timestamp) {
this.timestamp = timestamp;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.flexcodelabs.flextuma.core.dto;

public class SuccessResponse {
private String message;

public SuccessResponse() {}

public SuccessResponse(String message) {
this.message = message;
}

public static SuccessResponse of(String message) {
return new SuccessResponse(message);
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}
}
63 changes: 63 additions & 0 deletions src/main/java/com/flexcodelabs/flextuma/core/dtos/RegisterDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package com.flexcodelabs.flextuma.core.dtos;

import com.flexcodelabs.flextuma.core.validation.ValidPassword;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;

public class RegisterDto {

@NotBlank(message = "Name cannot be empty")
private String name;

@NotBlank(message = "Username cannot be empty")
private String username;

@ValidPassword
private String password;

@NotBlank(message = "Phone number cannot be empty")
private String phoneNumber;

@Email(message = "Email must be valid")
private String email;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getPhoneNumber() {
return phoneNumber;
}

public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}
}
Loading