Skip to content
Snippets Groups Projects
Commit 3f3fd46d authored by Bastien DUMONT's avatar Bastien DUMONT :angel:
Browse files

wip

parent 748e8703
No related branches found
No related tags found
1 merge request!137feat(grdf): display grdf consents
Pipeline #90140 passed
......@@ -14,8 +14,8 @@ import { DateTime } from 'luxon'
import React, { useCallback, useEffect, useMemo, useState } from 'react'
import { useWhoAmI } from '../../API'
import { getAxiosXSRFHeader } from '../../axios.config'
import { IConsent } from '../../models/consent.model'
import { ConsentService } from '../../services/consent.service'
import { ISgeConsent } from '../../models/sgeConsent.model'
import { SgeConsentService } from '../../services/sgeConsent.service'
import DownloadModal from './DownloadModal'
import './agGridOverrides.scss'
import styles from './consents.module.scss'
......@@ -27,13 +27,13 @@ const Consents: React.FC = () => {
const [selectedNodes, setSelectedNodes] = useState<IRowNode[]>([])
const [isShowingSelection, setIsShowingSelection] = useState<boolean>(false)
const [openDownloadModal, setOpenDownloadModal] = useState<boolean>(false)
const [consents, setConsents] = useState<IConsent[]>([])
const [consents, setConsents] = useState<ISgeConsent[]>([])
const [page, setPage] = useState<number>(0)
const [rowsPerPage, setRowsPerPage] = useState<number>(50)
const [totalRows, setTotalRows] = useState<number>(50)
const { data: user } = useWhoAmI()
const consentService = useMemo(() => {
return new ConsentService()
return new SgeConsentService()
}, [])
const toggleOpenModal = useCallback(() => {
......
......@@ -24,9 +24,14 @@ export const links: Record<
label: 'Prix',
path: '/prices',
},
consents: {
label: 'Consentements',
path: '/consents',
sgeConsents: {
label: 'Consentements SGE',
path: '/consents/sge',
adminOnly: true,
},
grdfConsents: {
label: 'Consentements GRDF',
path: '/consents/grdf',
adminOnly: true,
},
}
......@@ -52,7 +57,7 @@ const Router = () => {
<Route path={links.prices.path} element={<Prices />} />
<Route path="/popups" element={<Popups />} />
{user.isAdmin && (
<Route path={links.consents.path} element={<Consents />} />
<Route path={links.sgeConsents.path} element={<Consents />} />
)}
<Route path="/login" element={<Login />} />
<Route
......
import { DateTime } from 'luxon'
export interface IGrdfConsent
extends Omit<GrdfConsentEntity, 'CreatedAt' | 'endDate' | 'inseeCode'> {
startDate: DateTime
......
import { DateTime } from 'luxon'
export interface IConsent
extends Omit<ConsentEntity, 'CreatedAt' | 'endDate' | 'inseeCode'> {
export interface ISgeConsent
extends Omit<SgeConsentEntity, 'CreatedAt' | 'endDate' | 'inseeCode'> {
startDate: DateTime
endDate: DateTime
}
export interface ConsentEntity {
export interface SgeConsentEntity {
ID: number
CreatedAt: string
endDate: string
......@@ -19,13 +19,13 @@ export interface ConsentEntity {
safetyOnBoarding: boolean
}
export interface IConsentPagination
extends Omit<ConsentPaginationEntity, 'rows'> {
rows: IConsent[]
export interface ISgeConsentPagination
extends Omit<SgeConsentPaginationEntity, 'rows'> {
rows: ISgeConsent[]
}
export interface ConsentPaginationEntity {
export interface SgeConsentPaginationEntity {
totalRows: number
totalPages: number
rows: ConsentEntity[]
rows: SgeConsentEntity[]
}
......@@ -2,13 +2,13 @@ import axios, { AxiosRequestConfig } from 'axios'
import { DateTime } from 'luxon'
import { toast } from 'react-toastify'
import {
ConsentEntity,
ConsentPaginationEntity,
IConsent,
IConsentPagination,
} from '../models/consent.model'
ISgeConsent,
ISgeConsentPagination,
SgeConsentEntity,
SgeConsentPaginationEntity,
} from '../models/sgeConsent.model'
export class ConsentService {
export class SgeConsentService {
/**
* Search for consents
* @param search
......@@ -21,13 +21,13 @@ export class ConsentService {
limit: number,
page: number,
axiosHeaders: AxiosRequestConfig
): Promise<IConsentPagination | null> => {
): Promise<ISgeConsentPagination | null> => {
try {
const { data } = await axios.get(
`/api/admin/consent?search=${search}&limit=${limit}&page=${page}`,
`/api/admin/sge/consent?search=${search}&limit=${limit}&page=${page}`,
axiosHeaders
)
const consentPagination = data as ConsentPaginationEntity
const consentPagination = data as SgeConsentPaginationEntity
return this.parseConsentPagination(consentPagination)
} catch (e) {
if (e.response.status === 403) {
......@@ -44,11 +44,11 @@ export class ConsentService {
* Converts consent entity into consent
* @param consentEntity
*/
public parseConsent = (consentEntity: ConsentEntity): IConsent => {
const startDate: DateTime = DateTime.fromISO(consentEntity.CreatedAt, {
public parseConsent = (consentEntity: SgeConsentEntity): ISgeConsent => {
const startDate = DateTime.fromISO(consentEntity.CreatedAt, {
zone: 'utc',
}).setLocale('fr-FR')
const endDate: DateTime = DateTime.fromISO(consentEntity.endDate, {
const endDate = DateTime.fromISO(consentEntity.endDate, {
zone: 'utc',
}).setLocale('fr-FR')
......@@ -71,13 +71,13 @@ export class ConsentService {
* @param consentPaginationEntity
*/
public parseConsentPagination = (
consentPaginationEntity: ConsentPaginationEntity
): IConsentPagination => {
consentPaginationEntity: SgeConsentPaginationEntity
): ISgeConsentPagination => {
const rows = consentPaginationEntity.rows.map(consent =>
this.parseConsent(consent)
)
const consentPagination: IConsentPagination = {
const consentPagination: ISgeConsentPagination = {
rows: rows,
totalRows: consentPaginationEntity.totalRows,
totalPages: consentPaginationEntity.totalPages,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment