fix: allow user to basic access conference information

This commit is contained in:
tdurieux
2021-09-11 19:03:17 +02:00
parent 8956c894d2
commit 07750f7a64
2 changed files with 45 additions and 10 deletions

View File

@@ -6,7 +6,7 @@ import { ConferenceStatus } from "./types";
export default class Conference {
private _data: IConferenceDocument;
private _repositories: Repository[] = null;
constructor(data: IConferenceDocument) {
this._data = data;
}
@@ -79,6 +79,30 @@ export default class Conference {
return this._data.status;
}
get conferenceID() {
return this._data.conferenceID;
}
get name() {
return this._data.name;
}
get startDate() {
return this._data.startDate;
}
get endDate() {
return this._data.endDate;
}
get url() {
return this._data.url;
}
get options() {
return this._data.options;
}
toJSON(opt?: { billing: boolean }): any {
const pricePerHourPerRepo = this._data.plan.pricePerRepository / 30;
let price = 0;

View File

@@ -215,20 +215,31 @@ router.get(
"/:conferenceID",
async (req: express.Request, res: express.Response) => {
try {
const user = await getUser(req);
const data = await ConferenceModel.findOne({
conferenceID: req.params.conferenceID,
});
if (!data)
throw new AnonymousError("conf_not_found", {
object: req.params.conferenceID,
httpStatus: 404,
});
throw new AnonymousError("conf_not_found", {
object: req.params.conferenceID,
httpStatus: 404,
});
const user = await getUser(req);
const conference = new Conference(data);
isOwnerOrAdmin(conference.ownerIDs, user);
const o: any = conference.toJSON();
o.repositories = (await conference.repositories()).map((r) => r.toJSON());
res.json(o);
try {
isOwnerOrAdmin(conference.ownerIDs, user);
const o: any = conference.toJSON();
o.repositories = (await conference.repositories()).map((r) => r.toJSON());
res.json(o);
} catch (error) {
return res.json({
conferenceID: conference.conferenceID,
name: conference.name,
url: conference.url,
startDate: conference.startDate,
endDate: conference.endDate,
options: conference.options,
})
}
} catch (error) {
handleError(error, res);
}