All checks were successful
/ build (map[dockerfile:./services/hasura/Dockerfile name:hasura]) (push) Successful in 47s
/ build (map[dockerfile:./services/web/Dockerfile name:web]) (push) Successful in 1m47s
/ build (map[dockerfile:./services/watchers/Dockerfile name:watchers]) (push) Successful in 2m37s
/ build (map[dockerfile:./services/files/Dockerfile name:files]) (push) Successful in 2m52s
/ build (map[dockerfile:./services/api/Dockerfile name:api]) (push) Successful in 3m2s
/ build (map[dockerfile:./services/app/Dockerfile name:app]) (push) Successful in 31s
/ build (map[dockerfile:./services/tasks/Dockerfile name:tasks]) (push) Successful in 2m44s
/ deploy (push) Successful in 48s
47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
const { ctx } = require("@modjo/core")
|
|
const { PhoneNumberUtil } = require("google-libphonenumber")
|
|
|
|
function parseFullNumber(n) {
|
|
const phoneUtil = PhoneNumberUtil.getInstance()
|
|
const num = phoneUtil.parse(n)
|
|
if (!num.hasNationalNumber()) {
|
|
throw new Error("invalid number")
|
|
}
|
|
const nationalNumber = num.getNationalNumberOrDefault().toString()
|
|
const code = num.getCountryCodeOrDefault()
|
|
const countryCode = phoneUtil.getRegionCodeForCountryCode(code)
|
|
return {
|
|
countryCode,
|
|
code: code.toString(),
|
|
nationalNumber,
|
|
}
|
|
}
|
|
|
|
function parseFullPhoneNumber(fullPhoneNumber) {
|
|
let phoneNumberObject
|
|
try {
|
|
phoneNumberObject = parseFullNumber(fullPhoneNumber)
|
|
} catch (err) {
|
|
const logger = ctx.require("logger")
|
|
logger.debug({ error: err }, "unable to parse phone number")
|
|
logger.error({ error: err }, "Error parsing phone number")
|
|
throw err
|
|
}
|
|
const { countryCode, nationalNumber } = phoneNumberObject
|
|
return { countryCode, nationalNumber }
|
|
}
|
|
|
|
function isFullPhoneNumber(fullPhoneNumber) {
|
|
try {
|
|
parseFullNumber(fullPhoneNumber)
|
|
return true
|
|
} catch (err) {
|
|
return false
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
parseFullNumber,
|
|
parseFullPhoneNumber,
|
|
isFullPhoneNumber,
|
|
}
|