Skip to content

Commit

Permalink
use camel case var
Browse files Browse the repository at this point in the history
  • Loading branch information
jbouhadoun committed Aug 14, 2024
1 parent 53de648 commit ad69f2e
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 63 deletions.
67 changes: 35 additions & 32 deletions lib/api/certificat/models.js → lib/api/certificate/models.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,45 @@
import {Certificate, sequelize} from '../../util/sequelize.js'

const getAddressDetailsByIdQuery = `
SELECT
a.id as address_id,
a.number,
a.suffix,
ct.labels[1]->>'value' as common_toponym,
d.labels[1]->>'value' as district,
d.meta->'insee'->>'cog' as insee_code,
a.meta->'cadastre'->'ids' as parcelles
FROM
"ban"."address" AS a
JOIN
"ban"."district" AS d ON a."districtID" = d.id
LEFT JOIN
"ban"."common_toponym" AS ct ON ct.id = a."mainCommonToponymID"
WHERE
a.id = :addressId
`

const checkCertifiedActiveAndHasParcellesByIdQuery = `
SELECT
*
FROM
"ban"."address" AS a
WHERE
a.id = :addressId
and certified=true
and "isActive"=true
and jsonb_array_length(a.meta->'cadastre'->'ids') > 0
`
export const getCertificate = certificateID => Certificate.findByPk(certificateID, {raw: true})

export const getCertificates = certificateIDs => Certificate.findAll({
where: {id: certificateIDs},
raw: true
})

export const getCertificatesByAddress = address_id => Certificate.findAll({ // eslint-disable-line camelcase
where: {address_id}, // eslint-disable-line camelcase
aw: true
export const getCertificatesByAddress = addressID => Certificate.findAll({
where: {address_id: addressID}, // eslint-disable-line camelcase
raw: true
})

export const setCertificate = async certificates => {
Expand Down Expand Up @@ -50,24 +80,7 @@ export const setCertificate = async certificates => {

export const getAddressDetailsById = async addressId => {
try {
const results = await sequelize.query(`
SELECT
a.id as address_id,
a.number,
a.suffix,
ct.labels[1]->>'value' as common_toponym,
d.labels[1]->>'value' as district,
d.meta->'insee'->>'cog' as insee_code,
a.meta->'cadastre'->'ids' as parcelles
FROM
"ban"."address" AS a
JOIN
"ban"."district" AS d ON a."districtID" = d.id
LEFT JOIN
"ban"."common_toponym" AS ct ON ct.id = a."mainCommonToponymID"
WHERE
a.id = :addressId
`, {
const results = await sequelize.query(getAddressDetailsByIdQuery, {
replacements: {addressId},
type: sequelize.QueryTypes.SELECT
})
Expand All @@ -84,17 +97,7 @@ export const getAddressDetailsById = async addressId => {

export const checkCertifiedActiveAndHasParcellesById = async addressId => {
try {
const results = await sequelize.query(`
SELECT
*
FROM
"ban"."address" AS a
WHERE
a.id = :addressId
and certified=true
and "isActive"=true
and jsonb_array_length(a.meta->'cadastre'->'ids') > 0
`, {
const results = await sequelize.query(checkCertifiedActiveAndHasParcellesByIdQuery, {
replacements: {addressId},
type: sequelize.QueryTypes.SELECT
})
Expand Down
33 changes: 4 additions & 29 deletions lib/api/certificat/routes.js → lib/api/certificate/routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import express from 'express'
import {
getCertificate,
setCertificate,
getAddressDetailsById,
checkCertifiedActiveAndHasParcellesById
} from './models.js'

Expand Down Expand Up @@ -34,51 +33,27 @@ app.get('/:id', async (req, res) => {

app.post('/', async (req, res) => {
try {
const {address_id} = req.body // eslint-disable-line camelcase
const {address_id: addressID} = req.body

if (!address_id) { // eslint-disable-line camelcase
if (!addressID) {
return res.status(400).json({message: 'address_id is required'})
}

const isValidAddress = await checkCertifiedActiveAndHasParcellesById(address_id)
const isValidAddress = await checkCertifiedActiveAndHasParcellesById(addressID)

if (!isValidAddress) {
return res.status(400).json({message: 'Address is not certified, not active, or has no parcels.'})
}

const newCertificate = await setCertificate([{
address_id // eslint-disable-line camelcase
address_id: addressID // eslint-disable-line camelcase
}])

console.log('New certificate details:', newCertificate)

res.status(201).json(newCertificate[0])
} catch (error) {
console.error(`Error creating certificate: ${error.message}`)
res.status(500).json({message: 'Internal server error'})
}
})

app.get('/addresses/:id', async (req, res) => {
const addressId = req.params.id // Récupérez l'ID directement comme une chaîne
try {
if (addressId) {
const addressDetails = await getAddressDetailsById(addressId)
console.log(addressDetails)
if (addressDetails.length > 0) {
console.log(`Address details retrieved: ${JSON.stringify(addressDetails)}`)
res.status(200).json(addressDetails[0])
} else {
console.log(`Address not found with ID: ${addressId}`)
res.status(404).json({message: 'Address not found'})
}
} else {
res.status(400).json({message: 'Invalid ID format'})
}
} catch (error) {
console.error(`Error retrieving address details: ${error.message}`)
res.status(500).json({message: 'Internal server error'})
}
})

export default app
4 changes: 2 additions & 2 deletions lib/api/routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import commonToponymRoutes from './common-toponym/routes.js'
import districtRoutes from './district/routes.js'
import statusRoutes from './job-status/routes.js'
import banIdRoutes from './ban-id/routes.js'
import certificatRoutes from './certificat/routes.js'
import certificatRoutes from './certificate/routes.js'

const app = new express.Router()

Expand All @@ -15,6 +15,6 @@ app.use('/common-toponym', commonToponymRoutes)
app.use('/district', districtRoutes)
app.use('/job-status', statusRoutes)
app.use('/ban-id', banIdRoutes)
app.use('/certificat', certificatRoutes)
app.use('/certificate', certificatRoutes)

export default app

0 comments on commit ad69f2e

Please sign in to comment.