refactor: move db request to member.service.ts

This commit is contained in:
Nemo D'ACREMONT 2024-11-08 11:44:26 +01:00
parent c0a5b036da
commit f1d41e6960
No known key found for this signature in database
GPG Key ID: 6E5BCE8022FA8276
2 changed files with 56 additions and 48 deletions

View File

@ -1,48 +0,0 @@
import { new_client } from '../db/db_client';
import { Member, User } from '../types/member';
import { Either, eitherLeft, eitherRight } from '../utils/utils';
const getDefaultUser = (): User => ({ id_member: -1, name: "unknown" });
const getDefaultMember = (): Member => ({ id_member: -1, name: "unknown", password: "none" });
const getMember = async (idOrName: number | string): Promise<Either<Member, string>> => {
const client = new_client();
await client.connect();
let res;
if (typeof idOrName !== 'number') {
res = await client.query("SELECT * FROM membres WHERE nom_membre=$1;", [`${idOrName}`]);
} else {
res = await client.query("SELECT * FROM membres WHERE id_membre=$1;", [idOrName]);
}
if (res.rows.length === 0) {
await client.end();
return eitherRight<Member, string>("Does not exist.");
}
const member: Member = { id_member: res.rows[0].id_membre, name: res.rows[0].nom_membre, password: res.rows[0].mdp_membre };
await client.end();
return eitherLeft<Member, string>(member);
}
const createMember = async (name: string, passwd: string): Promise<Either<Member, string>> => {
const gettingMember = await getMember(name);
if (!gettingMember.hasRight) {
return eitherRight<Member, string>("Already in database.");
}
const client = new_client();
await client.connect();
const res = await client.query("INSERT INTO membres (nom_membre, mdp_membre) VALUES ($1, $2) RETURNING *;", [`${name}`, `${passwd}`]);
if (res.rows.length === 0) {
await client.end();
return eitherRight<Member, string>("Something went wrong");
}
const member: Member = { id_member: res.rows[0].id_membre, name: res.rows[0].nom_membre, password: res.rows[0].mdp_membre };
await client.end();
return eitherLeft<Member, string>(member);
}
function userAdapter(member: Member): User {
return { id_member: member.id_member, name: member.name };
}
export { getDefaultUser, getDefaultMember, getMember, createMember, userAdapter };

View File

@ -0,0 +1,56 @@
import { new_client } from '../db/db_client';
import { Member, User } from '../types/member';
import { Either, eitherLeft, eitherRight } from '../utils/utils';
const getMember = async (idOrName: number | string): Promise<Either<Member, string>> => {
const client = new_client();
await client.connect();
let res;
if (typeof idOrName !== 'number') {
res = await client.query("SELECT * FROM membres WHERE nom_membre=$1;", [`${idOrName}`]);
} else {
res = await client.query("SELECT * FROM membres WHERE id_membre=$1;", [idOrName]);
}
if (res.rows.length === 0) {
await client.end();
return eitherRight<Member, string>("Does not exist.");
}
const member: Member = { id_member: res.rows[0].id_membre, name: res.rows[0].nom_membre, password: res.rows[0].mdp_membre };
await client.end();
return eitherLeft<Member, string>(member);
}
const createMember = async (name: string, passwd: string): Promise<Either<Member, string>> => {
const gettingMember = await getMember(name);
if (!gettingMember.hasRight) {
return eitherRight<Member, string>("Already in database.");
}
const client = new_client();
await client.connect();
const res = await client.query("INSERT INTO membres (nom_membre, mdp_membre) VALUES ($1, $2) RETURNING *;", [`${name}`, `${passwd}`]);
if (res.rows.length === 0) {
await client.end();
return eitherRight<Member, string>("Something went wrong");
}
const member: Member = { id_member: res.rows[0].id_membre, name: res.rows[0].nom_membre, password: res.rows[0].mdp_membre };
await client.end();
return eitherLeft<Member, string>(member);
}
const getDefaultUser = (): User => ({ id_member: -1, name: "unknown" });
const getDefaultMember = (): Member => ({ id_member: -1, name: "unknown", password: "none" });
function userAdapter(member: Member): User {
return { id_member: member.id_member, name: member.name };
}
const memberService = {
getMember,
createMember,
getDefaultUser,
getDefaultMember,
userAdapter,
};
export default memberService;