mirror of
https://github.com/Paris-est-Ludique/intranet.git
synced 2025-09-11 13:56:29 +02:00
Factors redux tools to access the DB
This commit is contained in:
85
src/services/accessors.ts
Normal file
85
src/services/accessors.ts
Normal file
@@ -0,0 +1,85 @@
|
||||
import axios from "axios"
|
||||
|
||||
import config from "../config"
|
||||
|
||||
export type ElementWithId = unknown & { id: number }
|
||||
|
||||
export function get<Element>(elementName: string): (id: number) => Promise<{
|
||||
data?: Element
|
||||
error?: Error
|
||||
}> {
|
||||
interface ElementGetResponse {
|
||||
data?: Element
|
||||
error?: Error
|
||||
}
|
||||
return async (id: number): Promise<ElementGetResponse> => {
|
||||
try {
|
||||
const { data } = await axios.get(`${config.API_URL}/${elementName}Get`, {
|
||||
params: { id },
|
||||
})
|
||||
return { data }
|
||||
} catch (error) {
|
||||
return { error: error as Error }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function listGet<Element>(elementName: string): () => Promise<{
|
||||
data?: Element[]
|
||||
error?: Error
|
||||
}> {
|
||||
interface ElementListGetResponse {
|
||||
data?: Element[]
|
||||
error?: Error
|
||||
}
|
||||
return async (): Promise<ElementListGetResponse> => {
|
||||
try {
|
||||
const { data } = await axios.get(`${config.API_URL}/${elementName}ListGet`)
|
||||
return { data }
|
||||
} catch (error) {
|
||||
return { error: error as Error }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||
export function add<ElementNoId extends object, Element extends ElementNoId & ElementWithId>(
|
||||
elementName: string
|
||||
): (membreWithoutId: ElementNoId) => Promise<{
|
||||
data?: Element
|
||||
error?: Error
|
||||
}> {
|
||||
interface ElementGetResponse {
|
||||
data?: Element
|
||||
error?: Error
|
||||
}
|
||||
return async (membreWithoutId: ElementNoId): Promise<ElementGetResponse> => {
|
||||
try {
|
||||
const { data } = await axios.post(
|
||||
`${config.API_URL}/${elementName}Add`,
|
||||
membreWithoutId
|
||||
)
|
||||
return { data }
|
||||
} catch (error) {
|
||||
return { error: error as Error }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function set<Element>(elementName: string): (membre: Element) => Promise<{
|
||||
data?: Element
|
||||
error?: Error
|
||||
}> {
|
||||
interface ElementGetResponse {
|
||||
data?: Element
|
||||
error?: Error
|
||||
}
|
||||
return async (membre: Element): Promise<ElementGetResponse> => {
|
||||
try {
|
||||
const { data } = await axios.post(`${config.API_URL}/${elementName}Set`, membre)
|
||||
return { data }
|
||||
} catch (error) {
|
||||
return { error: error as Error }
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,6 +1,4 @@
|
||||
import axios from "axios"
|
||||
|
||||
import config from "../config"
|
||||
import { get, listGet, add, set } from "./accessors"
|
||||
|
||||
export class Envie {
|
||||
id = 0
|
||||
@@ -15,30 +13,13 @@ export class Envie {
|
||||
|
||||
dateAjout = ""
|
||||
}
|
||||
|
||||
export type EnvieWithoutId = Omit<Envie, "id">
|
||||
|
||||
export interface EnvieListGetResponse {
|
||||
data?: Envie[]
|
||||
error?: Error
|
||||
}
|
||||
export const envieListGet = async (): Promise<EnvieListGetResponse> => {
|
||||
try {
|
||||
const { data } = await axios.get(`${config.API_URL}/EnvieListGet`)
|
||||
return { data }
|
||||
} catch (error) {
|
||||
return { error: error as Error }
|
||||
}
|
||||
}
|
||||
export const envieGet = get<Envie>("Envie")
|
||||
|
||||
export interface EnvieAddResponse {
|
||||
data?: Envie
|
||||
error?: Error
|
||||
}
|
||||
export const envieAdd = async (envieWithoutId: EnvieWithoutId): Promise<EnvieAddResponse> => {
|
||||
try {
|
||||
const { data } = await axios.post(`${config.API_URL}/EnvieAdd`, envieWithoutId)
|
||||
return { data }
|
||||
} catch (error) {
|
||||
return { error: error as Error }
|
||||
}
|
||||
}
|
||||
export const envieListGet = listGet<Envie>("Envie")
|
||||
|
||||
export const envieAdd = add<EnvieWithoutId, Envie>("Envie")
|
||||
|
||||
export const envieSet = set<Envie>("Envie")
|
||||
|
@@ -1,61 +0,0 @@
|
||||
import axios from "axios"
|
||||
|
||||
import config from "../config"
|
||||
|
||||
export class JeuJav {
|
||||
id = 0
|
||||
|
||||
titre = ""
|
||||
|
||||
auteur = ""
|
||||
|
||||
editeur = ""
|
||||
|
||||
minJoueurs = 0
|
||||
|
||||
maxJoueurs = 0
|
||||
|
||||
duree = 0
|
||||
|
||||
type: "Ambiance" | "Famille" | "Expert" | "" = ""
|
||||
|
||||
poufpaf = ""
|
||||
|
||||
bggId = 0
|
||||
|
||||
exemplaires = 1
|
||||
|
||||
dispoPret = 0
|
||||
|
||||
nonRangee = 0
|
||||
|
||||
ean = ""
|
||||
|
||||
bggPhoto = ""
|
||||
}
|
||||
|
||||
export interface JeuJavListResponse {
|
||||
data?: JeuJav[]
|
||||
error?: Error
|
||||
}
|
||||
export const getJeuJavList = async (): Promise<JeuJavListResponse> => {
|
||||
try {
|
||||
const { data } = await axios.get(`${config.API_URL}/JeuJavListGet`)
|
||||
return { data }
|
||||
} catch (error) {
|
||||
return { error: error as Error }
|
||||
}
|
||||
}
|
||||
|
||||
export interface JeuJavResponse {
|
||||
data?: JeuJav
|
||||
error?: Error
|
||||
}
|
||||
export const getJeuJavData = async (id: string): Promise<JeuJavResponse> => {
|
||||
try {
|
||||
const { data } = await axios.get(`${config.API_URL}/JeuJavGet`, { params: { id } })
|
||||
return { data }
|
||||
} catch (error) {
|
||||
return { error: error as Error }
|
||||
}
|
||||
}
|
43
src/services/jeuxJav.ts
Normal file
43
src/services/jeuxJav.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import { get, listGet, add, set } from "./accessors"
|
||||
|
||||
export class JeuJav {
|
||||
id = 0
|
||||
|
||||
titre = ""
|
||||
|
||||
auteur = ""
|
||||
|
||||
editeur = ""
|
||||
|
||||
minJoueurs = 0
|
||||
|
||||
maxJoueurs = 0
|
||||
|
||||
duree = 0
|
||||
|
||||
type: "Ambiance" | "Famille" | "Expert" | "" = ""
|
||||
|
||||
poufpaf = ""
|
||||
|
||||
bggId = 0
|
||||
|
||||
exemplaires = 1
|
||||
|
||||
dispoPret = 0
|
||||
|
||||
nonRangee = 0
|
||||
|
||||
ean = ""
|
||||
|
||||
bggPhoto = ""
|
||||
}
|
||||
|
||||
export type JeuJavWithoutId = Omit<JeuJav, "id">
|
||||
|
||||
export const jeuJavGet = get<JeuJav>("JeuJav")
|
||||
|
||||
export const jeuJavListGet = listGet<JeuJav>("JeuJav")
|
||||
|
||||
export const jeuJavAdd = add<JeuJavWithoutId, JeuJav>("JeuJav")
|
||||
|
||||
export const jeuJavSet = set<JeuJav>("JeuJav")
|
@@ -1,6 +1,4 @@
|
||||
import axios from "axios"
|
||||
|
||||
import config from "../config"
|
||||
import { get, listGet, add, set } from "./accessors"
|
||||
|
||||
export class Membre {
|
||||
id = 0
|
||||
@@ -29,56 +27,13 @@ export class Membre {
|
||||
|
||||
passe = ""
|
||||
}
|
||||
|
||||
export type MembreWithoutId = Omit<Membre, "id">
|
||||
|
||||
export interface MembreListGetResponse {
|
||||
data?: Membre[]
|
||||
error?: Error
|
||||
}
|
||||
export const membreListGet = async (): Promise<MembreListGetResponse> => {
|
||||
try {
|
||||
const { data } = await axios.get(`${config.API_URL}/MembreListGet`)
|
||||
return { data }
|
||||
} catch (error) {
|
||||
return { error: error as Error }
|
||||
}
|
||||
}
|
||||
export const membreGet = get<Membre>("Membre")
|
||||
|
||||
export interface MembreGetResponse {
|
||||
data?: Membre
|
||||
error?: Error
|
||||
}
|
||||
export const membreGet = async (id: number): Promise<MembreGetResponse> => {
|
||||
try {
|
||||
const { data } = await axios.get(`${config.API_URL}/MembreGet`, { params: { id } })
|
||||
return { data }
|
||||
} catch (error) {
|
||||
return { error: error as Error }
|
||||
}
|
||||
}
|
||||
export const membreListGet = listGet<Membre>("Membre")
|
||||
|
||||
export interface MembreSetResponse {
|
||||
data?: Membre
|
||||
error?: Error
|
||||
}
|
||||
export const membreSet = async (membre: Membre): Promise<MembreSetResponse> => {
|
||||
try {
|
||||
const { data } = await axios.post(`${config.API_URL}/MembreSet`, membre)
|
||||
return { data }
|
||||
} catch (error) {
|
||||
return { error: error as Error }
|
||||
}
|
||||
}
|
||||
export const membreAdd = add<MembreWithoutId, Membre>("Membre")
|
||||
|
||||
export interface MembreAddResponse {
|
||||
data?: Membre
|
||||
error?: Error
|
||||
}
|
||||
export const membreAdd = async (membreWithoutId: MembreWithoutId): Promise<MembreAddResponse> => {
|
||||
try {
|
||||
const { data } = await axios.post(`${config.API_URL}/MembreAdd`, membreWithoutId)
|
||||
return { data }
|
||||
} catch (error) {
|
||||
return { error: error as Error }
|
||||
}
|
||||
}
|
||||
export const membreSet = set<Membre>("Membre")
|
||||
|
Reference in New Issue
Block a user