Skip to content

Commit 2128024

Browse files
authored
Merge pull request #30 from WildCodeSchool/US0-commit-fix
modification demander par biom pour pouvoir l'utilsier enfin
2 parents 036df87 + f69d43e commit 2128024

35 files changed

+1220
-1207
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ database/
1010
dist
1111

1212
# pour avoir une liste des tâche a faire qui reste en local
13-
toodo.md
13+
toodo.md
14+
ingnore

backend/src/entities/GroupMember.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
import { Field, ID, ObjectType } from "type-graphql";
2-
import { BaseEntity, Column, CreateDateColumn, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, Unique } from "typeorm";
2+
import {
3+
BaseEntity,
4+
Column,
5+
CreateDateColumn,
6+
Entity,
7+
JoinColumn,
8+
ManyToOne,
9+
PrimaryGeneratedColumn,
10+
Unique,
11+
} from "typeorm";
312
import { Group } from "./Group";
413
import User from "./User";
514

@@ -26,11 +35,17 @@ export class GroupMember extends BaseEntity {
2635
@Field()
2736
joined_at: Date;
2837

29-
@ManyToOne(() => User, (user) => user.groupMember)
38+
@ManyToOne(
39+
() => User,
40+
(user) => user.groupMember,
41+
)
3042
@JoinColumn({ name: "userId" })
3143
user: User;
3244

33-
@ManyToOne(() => Group, (group) => group.groupMember)
45+
@ManyToOne(
46+
() => Group,
47+
(group) => group.groupMember,
48+
)
3449
@JoinColumn({ name: "groupId" })
3550
group: Group;
3651
}

backend/src/entities/User.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ class User extends BaseEntity {
7676
isAdmin: boolean = false;
7777

7878
// ============= NOUVEAUX CHAMPS =============
79-
79+
8080
@Column({ default: false })
8181
@Field()
8282
isBanned: boolean = false;
@@ -142,4 +142,4 @@ class User extends BaseEntity {
142142
lists: List[];
143143
}
144144

145-
export default User;
145+
export default User;

backend/src/resolvers/GroupResolver.ts

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,21 @@
1-
import { Arg, Ctx, Field, InputType, Mutation, Query, Resolver, UseMiddleware, FieldResolver, Root } from "type-graphql";
1+
import {
2+
Arg,
3+
Ctx,
4+
Field,
5+
FieldResolver,
6+
InputType,
7+
Mutation,
8+
Query,
9+
Resolver,
10+
Root,
11+
UseMiddleware,
12+
} from "type-graphql";
213
import Group from "../entities/Group";
314
import { GroupMember } from "../entities/GroupMember";
15+
import { Message } from "../entities/Message";
16+
import User from "../entities/User";
417
import { RoleMiddleware } from "../middleware/RoleMiddleware";
518
import type { ContextType } from "../types/context";
6-
import User from "../entities/User";
7-
import { Message } from "../entities/Message";
819

920
@InputType()
1021
class CreateGroupInput {
@@ -33,13 +44,13 @@ export default class GroupResolver {
3344
const groups = await Group.find({
3445
where: {
3546
groupMember: {
36-
user: { id: ctx.user?.id }
37-
}
47+
user: { id: ctx.user?.id },
48+
},
3849
},
3950
relations: {
4051
groupMember: { user: true },
4152
},
42-
order: { id: "DESC" }
53+
order: { id: "DESC" },
4354
});
4455

4556
// charge les 10 derniers messages de chaque groupe
@@ -58,28 +69,25 @@ export default class GroupResolver {
5869
@FieldResolver(() => [GroupMember])
5970
async groupMember(@Root() group: Group) {
6071
const members = await GroupMember.find({
61-
where: { groupId: group.id }
72+
where: { groupId: group.id },
6273
});
6374

6475
return members || []; // >>> jamais null
6576
}
6677

6778
@Mutation(() => Group)
6879
async createGroup(@Arg("data") data: CreateGroupInput, @Ctx() ctx: ContextType) {
69-
7080
//TO DO: vérifier les inputs et les nettoyer
7181
if (!ctx.user) throw new Error("Utilisateur non connecté");
7282

7383
//TO DO: ajouter l'utilisateur créant le groupe comme admin du groupe
74-
let userAdmin;
84+
let userAdmin: any;
7585
try {
7686
userAdmin = await User.findOneOrFail({ where: { id: ctx.user.id } });
7787
} catch {
7888
throw new Error("Utilisateur introuvable");
7989
}
8090

81-
82-
8391
const group = Group.create({
8492
user_admin: userAdmin,
8593
name: data.name,
@@ -95,7 +103,6 @@ export default class GroupResolver {
95103
data.users.map(async (userEmail) => {
96104
const userToAdd = await User.findOne({ where: { email: userEmail } });
97105
if (!userToAdd) {
98-
console.log("Cet utilisateur n'existe pas encore chez nous!");
99106
return;
100107
}
101108

@@ -105,7 +112,7 @@ export default class GroupResolver {
105112
});
106113

107114
await groupMember.save();
108-
})
115+
}),
109116
);
110117
}
111118

Lines changed: 54 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,54 @@
1-
import { Arg, Ctx, Field, InputType, Mutation, Query, Resolver, UseMiddleware } from "type-graphql";
2-
import Group from "../entities/Group";
3-
import { GroupMember } from "../entities/GroupMember";
4-
import { Message } from "../entities/Message";
5-
import User from "../entities/User";
6-
import { RoleMiddleware } from "../middleware/RoleMiddleware";
7-
import type { ContextType } from "../types/context";
8-
9-
@InputType()
10-
class NewMessageInput {
11-
@Field()
12-
groupId!: number;
13-
14-
@Field()
15-
message!: string;
16-
}
17-
18-
@Resolver(Group)
19-
export default class MessageResolver {
20-
@UseMiddleware(RoleMiddleware())
21-
// pour récupérer les anciens messages d'un groupe
22-
@Query(() => String)
23-
async fetchMessagesByGroup(@Ctx() ctx: ContextType) {
24-
const userId = ctx.user?.id;
25-
26-
if (!userId) throw new Error("Utilisateur non authentifié");
27-
28-
// const group = await GroupMember.findOne({ where: { user: { id: userId }, group: { id: data.groupId } } });
29-
// // verifier que l'utilisateur fait bien partie du groupe
30-
// if (!group) throw new Error("Groupe non trouvé");
31-
32-
return "ok";
33-
}
34-
35-
@UseMiddleware(RoleMiddleware())
36-
// envoyer un nouveaux message
37-
@Mutation(() => Boolean)
38-
async sendMessage(@Ctx() ctx: ContextType, @Arg("data") data: NewMessageInput) {
39-
const userId = ctx.user?.id;
40-
41-
if (!userId) throw new Error("Utilisateur non authentifié");
42-
43-
const group = await GroupMember.findOne({ where: { user: { id: userId }, group: { id: data.groupId } } });
44-
// verifier que l'utilisateur fait bien partie du groupe
45-
if (!group) throw new Error("Groupe non trouvé");
46-
47-
Message.create({
48-
group: { id: data.groupId },
49-
user: { id: userId },
50-
content: data.message,
51-
}).save();
52-
53-
return true;
54-
}
55-
}
1+
import { Arg, Ctx, Field, InputType, Mutation, Query, Resolver, UseMiddleware } from "type-graphql";
2+
import Group from "../entities/Group";
3+
import { GroupMember } from "../entities/GroupMember";
4+
import { Message } from "../entities/Message";
5+
import { RoleMiddleware } from "../middleware/RoleMiddleware";
6+
import type { ContextType } from "../types/context";
7+
8+
@InputType()
9+
class NewMessageInput {
10+
@Field()
11+
groupId!: number;
12+
13+
@Field()
14+
message!: string;
15+
}
16+
17+
@Resolver(Group)
18+
export default class MessageResolver {
19+
@UseMiddleware(RoleMiddleware())
20+
// pour récupérer les anciens messages d'un groupe
21+
@Query(() => String)
22+
async fetchMessagesByGroup(@Ctx() ctx: ContextType) {
23+
const userId = ctx.user?.id;
24+
25+
if (!userId) throw new Error("Utilisateur non authentifié");
26+
27+
// const group = await GroupMember.findOne({ where: { user: { id: userId }, group: { id: data.groupId } } });
28+
// // verifier que l'utilisateur fait bien partie du groupe
29+
// if (!group) throw new Error("Groupe non trouvé");
30+
31+
return "ok";
32+
}
33+
34+
@UseMiddleware(RoleMiddleware())
35+
// envoyer un nouveaux message
36+
@Mutation(() => Boolean)
37+
async sendMessage(@Ctx() ctx: ContextType, @Arg("data") data: NewMessageInput) {
38+
const userId = ctx.user?.id;
39+
40+
if (!userId) throw new Error("Utilisateur non authentifié");
41+
42+
const group = await GroupMember.findOne({ where: { user: { id: userId }, group: { id: data.groupId } } });
43+
// verifier que l'utilisateur fait bien partie du groupe
44+
if (!group) throw new Error("Groupe non trouvé");
45+
46+
Message.create({
47+
group: { id: data.groupId },
48+
user: { id: userId },
49+
content: data.message,
50+
}).save();
51+
52+
return true;
53+
}
54+
}

0 commit comments

Comments
 (0)