a2b9de91f5
Release package / release (push) Failing after 2m57s
Co-authored-by: TakahashiNg <83152264+TakahashiNguyen@users.noreply.github.com> Co-authored-by: gitea-actions <actions-user@noreply.git.demonkernel.io.vn> Reviewed-on: #2
75 lines
1.7 KiB
Java
75 lines
1.7 KiB
Java
package com.drinkool;
|
|
|
|
import com.drinkool.dtos.*;
|
|
import com.drinkool.models.Customer;
|
|
import com.drinkool.services.*;
|
|
import jakarta.inject.Inject;
|
|
import jakarta.transaction.Transactional;
|
|
import jakarta.ws.rs.*;
|
|
import jakarta.ws.rs.core.*;
|
|
|
|
@Path("/api")
|
|
public class RestAPI {
|
|
|
|
@Inject
|
|
OtpService otpService;
|
|
|
|
@POST
|
|
@Path("/signup")
|
|
@Transactional
|
|
public Response signup(Signup input) {
|
|
Customer newCustomer = new Customer();
|
|
|
|
newCustomer.signup(input.name, input.phone, input.password);
|
|
|
|
return Response.status(Response.Status.CREATED).build();
|
|
}
|
|
|
|
@POST
|
|
@Path("/quickSignup")
|
|
@Transactional
|
|
public Response quickSignup(QuickSignup input) {
|
|
Customer newCustomer = new Customer();
|
|
|
|
newCustomer.signup(input.phone);
|
|
|
|
return Response.status(Response.Status.CREATED).build();
|
|
}
|
|
|
|
@POST
|
|
@Path("/login")
|
|
public Response login(Login input) {
|
|
Customer customer = Customer.find("phone", input.phone).firstResult();
|
|
|
|
if (customer == null) throw new BadRequestException("InvalidPhoneNumber");
|
|
|
|
if (!customer.login(input.password)) throw new BadRequestException(
|
|
"InvalidPassword"
|
|
);
|
|
|
|
return Response.accepted().build();
|
|
}
|
|
|
|
@POST
|
|
@Path("/sms_otp")
|
|
public Response smsOtp(SmsOtp input) {
|
|
String otp = otpService.generateAndSaveOtp(input.phone);
|
|
|
|
// Ở đây bạn sẽ gọi Kafka để gửi SMS thực tế
|
|
System.out.println("OTP cho " + input.phone + " là: " + otp);
|
|
|
|
return Response.accepted().build();
|
|
}
|
|
|
|
@POST
|
|
@Path("/quicklogin")
|
|
public Response quickLogin(QuickLogin input) {
|
|
if (otpService.verifyOtp(input.phone, input.otp)) {
|
|
return Response.accepted().build();
|
|
}
|
|
return Response.status(Response.Status.UNAUTHORIZED)
|
|
.entity("InvalidOTP")
|
|
.build();
|
|
}
|
|
}
|