Replies: 1 comment
-
@stephencelis @mbrandonw issue cant be in VaporRoute SPM ## from server create new all work as expected
app.post("device_check_and_login") { request async throws -> SendUserVerificationResponse in
let input = try request.content.decode(VerifySMSIn.self)
do {
_ = try await input.phoneNumber.varifyMobileNumber()
} catch {
print("\(error)")
}
do {
let res = try await deviceCheckHandler(request: request, route: .validatreDeviceToken(input.deviceCheckdata))
if try await res.encodeResponse(for: request).status != .ok {
let msg = "deviceCheckHandler failded for validatreDeviceToken authenticationHandler"
request.application.logger.notice("\(msg)")
throw Abort(.forbidden, reason: "\(msg)")
} else {
print(#line, try await res.encodeResponse(for: request).status)
}
} catch {
print(#line, "\(error.localizedDescription)")
}
let verification = input
let phoneNumber = verification.phoneNumber.removingInvalidCharacters
let code = String.randomDigits(ofLength: 6)
let message = "Hello there! Your verification code is \(code)"
guard let SENDER_NUMBER = Environment.get("SENDER_NUMBER") else {
fatalError("No value was found at the given public key environment 'SENDER_NUMBER'")
}
let sms = OutgoingSMS(body: message, from: SENDER_NUMBER, to: phoneNumber)
request.logger.notice("SMS is \(message)")
switch request.application.environment {
case .production:
_ = try await request.application.twilio.send(sms).get()
let smsAttempt = SMSVerificationAttempt(
code: code,
expiresAt: Date().addingTimeInterval(5.0 * 60.0),
phoneNumber: phoneNumber
)
_ = try await smsAttempt.save(on: request.db).get()
let attemptId = try! smsAttempt.requireID()
return SendUserVerificationResponse(
phoneNumber: phoneNumber,
attemptId: attemptId
)
case .development:
let smsAttempt = SMSVerificationAttempt(
code: "336699",
expiresAt: Date().addingTimeInterval(5.0 * 60.0),
phoneNumber: phoneNumber
)
_ = try await smsAttempt.save(on: request.db).get()
let attemptId = try! smsAttempt.requireID()
return SendUserVerificationResponse(phoneNumber: phoneNumber, attemptId: attemptId)
default:
let smsAttempt = SMSVerificationAttempt(
code: "336699",
expiresAt: Date().addingTimeInterval(5.0 * 60.0),
phoneNumber: phoneNumber
)
_ = smsAttempt.save(on: request.db).map { smsAttempt }
let attemptId = try! smsAttempt.requireID()
return SendUserVerificationResponse(phoneNumber: phoneNumber, attemptId: attemptId)
}
} |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
DuplicateAction.zip
Back-end server test dont have any issue at all
debuting SPM
swift-url-routing
very difficult becz cant get where error coming fromBeta Was this translation helpful? Give feedback.
All reactions