Skip to content

Commit 424d8db

Browse files
committed
fix publisher modele review
1 parent bcb8637 commit 424d8db

7 files changed

Lines changed: 28 additions & 20 deletions

File tree

api/src/v0/mission.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ router.get("/", passport.authenticate(["apikey", "api"], { session: false }), as
210210
return res.status(200).send({
211211
ok: true,
212212
total,
213-
data: data.map((e: Mission) => buildData(e, req.user._id, req.user.moderator)),
213+
data: data.map((e: Mission) => buildData(e, user._id.toString(), user.moderator)),
214214
limit: query.data.limit,
215215
skip: query.data.skip,
216216
});

api/src/v0/mymission.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import esClient from "../db/elastic";
88
import { INVALID_PARAMS, INVALID_QUERY, NOT_FOUND } from "../error";
99
import MissionModel from "../models/mission";
1010
import RequestModel from "../models/request";
11-
import { Mission } from "../types";
11+
import { Mission, Publisher } from "../types";
1212
import { PublisherRequest } from "../types/passport";
1313

1414
const router = Router();
@@ -38,6 +38,7 @@ router.use(async (req: PublisherRequest, res: Response, next: NextFunction) => {
3838

3939
router.get("/", passport.authenticate(["apikey", "api"], { session: false }), async (req: PublisherRequest, res: Response, next: NextFunction) => {
4040
try {
41+
const user = req.user as Publisher;
4142
const query = zod
4243
.object({
4344
limit: zod.coerce.number().int().max(10000).default(50),
@@ -51,7 +52,7 @@ router.get("/", passport.authenticate(["apikey", "api"], { session: false }), as
5152
return res.status(400).send({ ok: false, code: INVALID_QUERY, message: query.error });
5253
}
5354

54-
const where = { deleted: false, publisherId: req.user._id.toString() };
55+
const where = { deleted: false, publisherId: user._id.toString() };
5556

5657
const total = await MissionModel.countDocuments(where);
5758
const data = await MissionModel.find(where).limit(query.data.limit).skip(query.data.skip).lean();
@@ -71,6 +72,7 @@ router.get("/", passport.authenticate(["apikey", "api"], { session: false }), as
7172

7273
router.get("/:clientId", passport.authenticate(["apikey", "api"], { session: false }), async (req: PublisherRequest, res: Response, next: NextFunction) => {
7374
try {
75+
const user = req.user as Publisher;
7476
const params = zod
7577
.object({
7678
clientId: zod.string(),
@@ -84,7 +86,7 @@ router.get("/:clientId", passport.authenticate(["apikey", "api"], { session: fal
8486

8587
const mission = await MissionModel.findOne({
8688
clientId: params.data.clientId,
87-
publisherId: req.user._id.toString(),
89+
publisherId: user._id.toString(),
8890
}).lean();
8991
if (!mission) {
9092
return res.status(404).send({ ok: false, code: NOT_FOUND });
@@ -153,6 +155,7 @@ router.get("/:clientId", passport.authenticate(["apikey", "api"], { session: fal
153155

154156
router.get("/:clientId/stats", passport.authenticate(["apikey", "api"], { session: false }), async (req: PublisherRequest, res: Response, next: NextFunction) => {
155157
try {
158+
const user = req.user as Publisher;
156159
const params = zod
157160
.object({
158161
clientId: zod.string(),
@@ -166,7 +169,7 @@ router.get("/:clientId/stats", passport.authenticate(["apikey", "api"], { sessio
166169

167170
const mission = await MissionModel.findOne({
168171
clientId: params.data.clientId,
169-
publisherId: req.user._id.toString(),
172+
publisherId: user._id.toString(),
170173
}).lean();
171174
if (!mission) {
172175
return res.status(404).send({ ok: false, code: NOT_FOUND });

api/src/v0/view.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { STATS_INDEX } from "../config";
66
import esClient from "../db/elastic";
77
import { INVALID_QUERY } from "../error";
88
import RequestModel from "../models/request";
9+
import { Publisher } from "../types";
910
import { PublisherRequest } from "../types/passport";
1011

1112
const router = Router();
@@ -35,6 +36,7 @@ router.use(async (req: PublisherRequest, res: Response, next: NextFunction) => {
3536

3637
router.get("/stats", passport.authenticate(["apikey", "api"], { session: false }), async (req: PublisherRequest, res: Response, next: NextFunction) => {
3738
try {
39+
const user = req.user as Publisher;
3840
const { error: queryError, value: query } = Joi.object({
3941
fromPublisherId: Joi.string().allow("").optional(),
4042
toPublisherId: Joi.string().allow("").optional(),
@@ -57,7 +59,7 @@ router.get("/stats", passport.authenticate(["apikey", "api"], { session: false }
5759
bool: {
5860
must_not: [{ term: { isBot: true } }],
5961
must: [],
60-
should: [{ term: { "toPublisherId.keyword": req.user._id } }, { term: { "fromPublisherId.keyword": req.user._id } }],
62+
should: [{ term: { "toPublisherId.keyword": user._id } }, { term: { "fromPublisherId.keyword": user._id } }],
6163
filter: [],
6264
},
6365
},

api/src/v2/activity.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { captureMessage, INVALID_BODY, INVALID_PARAMS, INVALID_QUERY, NOT_FOUND
99
import MissionModel from "../models/mission";
1010
import PublisherModel from "../models/publisher";
1111
import RequestModel from "../models/request";
12-
import { Stats } from "../types";
12+
import { Publisher, Stats } from "../types";
1313
import { PublisherRequest } from "../types/passport";
1414

1515
const router = Router();
@@ -176,6 +176,7 @@ router.post("/:missionId/:publisherId/click", async (req: PublisherRequest, res:
176176

177177
router.post("/:missionId/apply", passport.authenticate(["apikey", "api"], { session: false }), async (req: PublisherRequest, res: Response, next: NextFunction) => {
178178
try {
179+
const user = req.user as Publisher;
179180
const query = zod
180181
.object({
181182
tag: zod.string().optional(),
@@ -229,8 +230,8 @@ router.post("/:missionId/apply", passport.authenticate(["apikey", "api"], { sess
229230
toPublisherId: mission.publisherId,
230231
toPublisherName: mission.publisherName,
231232

232-
fromPublisherId: req.user._id.toString(),
233-
fromPublisherName: req.user.name,
233+
fromPublisherId: user._id.toString(),
234+
fromPublisherName: user.name,
234235

235236
tag: query.data.tag || clickId?.tag || "",
236237

@@ -239,8 +240,8 @@ router.post("/:missionId/apply", passport.authenticate(["apikey", "api"], { sess
239240
referer: req.header("referer") || "not_defined",
240241
createdAt: new Date(),
241242
source: "publisher",
242-
sourceName: req.user.name,
243-
sourceId: req.user._id.toString(),
243+
sourceName: user.name,
244+
sourceId: user._id.toString(),
244245
type: "apply",
245246
status: "PENDING",
246247
} as Stats;

api/src/v2/mission.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { API_URL } from "../config";
66
import { INVALID_PARAMS, INVALID_QUERY, NOT_FOUND } from "../error";
77
import MissionModel from "../models/mission";
88
import RequestModel from "../models/request";
9-
import { Mission } from "../types";
9+
import { Mission, Publisher } from "../types";
1010
import { PublisherRequest } from "../types/passport";
1111
import { diacriticSensitiveRegex } from "../utils";
1212

@@ -40,6 +40,7 @@ router.use(async (req: PublisherRequest, res: Response, next: NextFunction) => {
4040

4141
router.get("/", passport.authenticate(["apikey", "api"], { session: false }), async (req: PublisherRequest, res: Response, next: NextFunction) => {
4242
try {
43+
const user = req.user as Publisher;
4344
const query = zod
4445
.object({
4546
keywords: zod.string().optional(),
@@ -60,15 +61,15 @@ router.get("/", passport.authenticate(["apikey", "api"], { session: false }), as
6061
return res.status(400).send({ ok: false, code: INVALID_QUERY, message: query.error });
6162
}
6263

63-
if (!req.user.publishers || !req.user.publishers.length) {
64+
if (!user.publishers || !user.publishers.length) {
6465
res.locals = { code: NO_PARTNER, message: NO_PARTNER_MESSAGE };
6566
return res.status(400).send({ ok: false, code: NO_PARTNER, message: NO_PARTNER_MESSAGE });
6667
}
6768

6869
const where = {
6970
statusCode: "ACCEPTED",
7071
deleted: false,
71-
publisherId: { $in: req.user.publishers.map((e: { publisher: string }) => e.publisher) },
72+
publisherId: { $in: user.publishers.map((e) => e.publisherId) },
7273
} as { [key: string]: any };
7374

7475
if (query.data.keywords) {
@@ -94,8 +95,8 @@ router.get("/", passport.authenticate(["apikey", "api"], { session: false }), as
9495
where.snu = true;
9596
}
9697

97-
if (req.user.moderator) {
98-
where[`moderation_${req.user._id}_status`] = "ACCEPTED";
98+
if (user.moderator) {
99+
where[`moderation_${user._id}_status`] = "ACCEPTED";
99100
}
100101

101102
const $facet = {} as { [key: string]: any };
@@ -131,7 +132,7 @@ router.get("/", passport.authenticate(["apikey", "api"], { session: false }), as
131132
return res.status(200).send({
132133
ok: true,
133134
total,
134-
data: data.map((e: Mission) => buildData(e, req.user._id, req.user.moderator)),
135+
data: data.map((e: Mission) => buildData(e, user._id.toString(), user.moderator)),
135136
facets,
136137
skip: query.data.skip,
137138
limit: query.data.limit,
@@ -143,6 +144,7 @@ router.get("/", passport.authenticate(["apikey", "api"], { session: false }), as
143144

144145
router.get("/:id", passport.authenticate(["apikey", "api"], { session: false }), async (req: PublisherRequest, res: Response, next: NextFunction) => {
145146
try {
147+
const user = req.user as Publisher;
146148
const params = zod
147149
.object({
148150
id: zod.string(),
@@ -160,7 +162,7 @@ router.get("/:id", passport.authenticate(["apikey", "api"], { session: false }),
160162
}
161163

162164
res.locals = { total: 1 };
163-
return res.status(200).send({ ok: true, data: buildData(mission, req.user._id, req.user.moderator) });
165+
return res.status(200).send({ ok: true, data: buildData(mission, user._id.toString(), user.moderator) });
164166
} catch (error: any) {
165167
next(error);
166168
}

process/src/jobs/linkedin/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ const handler = async () => {
7171
const jobs = [];
7272

7373
const queryMission = { deleted: "no", statusCode: "ACCEPTED" } as { [key: string]: any };
74-
queryMission.$or = (linkedin.publishers || []).map((e) => ({ publisherId: e.publisher }));
74+
queryMission.$or = (linkedin.publishers || []).map((e) => ({ publisherId: e.publisherId }));
7575

7676
console.log(`[Linkedin] Querying missions of JeVeuxAider.gouv.fr`);
7777
const JVAMissions = await getMissions({

process/src/jobs/moderation/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ interface ModerationUpdate {
2020
}
2121

2222
const findMissions = async (moderator: Publisher) => {
23-
const publishers = moderator.publishers.map((p) => p.publisher);
23+
const publishers = moderator.publishers.map((p) => p.publisherId);
2424
const where = {
2525
publisherId: { $in: publishers },
2626
statusCode: "ACCEPTED",

0 commit comments

Comments
 (0)