Skip to content

Commit bf43af6

Browse files
committed
Added a few missing imports and fixed some types
1 parent 653895e commit bf43af6

2 files changed

Lines changed: 55 additions & 16 deletions

File tree

backend/src/controllers/rating-controller.ts

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,29 @@
1-
import { Authorized, Delete, JsonController, ForbiddenError } from "routing-controllers";
1+
import {
2+
Authorized,
3+
Delete,
4+
JsonController,
5+
ForbiddenError,
6+
CurrentUser,
7+
Param,
8+
Put,
9+
Post,
10+
Body
11+
} from "routing-controllers";
212
import { Inject } from "typedi";
313
import { UserRole } from "../entities/user-role";
4-
import { SettingsServiceToken } from "../services/settings-service";
5-
import { SettingsServiceToken } from "../services/settings-service";
14+
import { SettingsServiceToken, ISettingsService } from "../services/settings-service";
15+
import { RatingServiceToken, IRatingService } from "../services/rating-service";
16+
import {
17+
RatingDTO,
18+
CriteriaDTO,
19+
SuccessResponseDTO,
20+
convertBetweenEntityAndDTO
21+
} from "./dto";
22+
import { User } from "../entities/user";
23+
import { Criteria } from "../entities/criteria";
24+
import { Rating } from "../entities/rating";
625

7-
// The RatingController and RatingService group stuff concerning ratings and critiera
8-
// together. Feel free to separate, if you think that would be better.
26+
// TODO separate rating and criteria controller?
927

1028
@JsonController("/ratings")
1129
export class RatingController {
@@ -43,10 +61,10 @@ export class RatingController {
4361
@Post("/rate")
4462
@Authorized(UserRole.User)
4563
public async createRating(
46-
@Body() { data: RatingDTO }: { data: RatingDTO },
64+
@Body() { data: ratingDTO }: { data: RatingDTO },
4765
@CurrentUser() user: User,
48-
): Promise<readonly RatingDTO[]> {
49-
const rating = convertBetweenEntityAndDTO(RatingDTO, Rating);
66+
): Promise<RatingDTO> {
67+
const rating = convertBetweenEntityAndDTO(ratingDTO, Rating);
5068
const createdRating = await this._ratings.createRating(rating);
5169
return convertBetweenEntityAndDTO(createdRating, RatingDTO);
5270
}
@@ -58,9 +76,9 @@ export class RatingController {
5876
@Authorized(UserRole.Root)
5977
public async createCriteria(
6078
@Body() { data: criteriaDTO }: { data: CriteriaDTO },
61-
): Promise<readonly CriteriaDTO[]> {
79+
): Promise<CriteriaDTO> {
6280
const criteria = convertBetweenEntityAndDTO(criteriaDTO, Criteria);
63-
const createdCriteria = await this._ratings.createCriteria();
81+
const createdCriteria = await this._ratings.createCriteria(criteria);
6482
return convertBetweenEntityAndDTO(createdCriteria, CriteriaDTO);
6583
}
6684

@@ -70,12 +88,12 @@ export class RatingController {
7088
@Put("/criteria/:id")
7189
@Authorized(UserRole.Root)
7290
public async updateCriteria(
73-
@Param("id") teamId: number,
91+
@Param("id") criteriaId: number,
7492
@Body() { data: criteriaDTO }: { data: CriteriaDTO },
75-
): Promise<TeamDTO> {
93+
): Promise<CriteriaDTO> {
7694
// TODO There is a TeamUpdateDTO. CriteriaUpdateDTO?
77-
const team = convertBetweenEntityAndDTO(criteriaDTO, Criteria);
78-
const updateTeam = await this._ratings.updateCriteria(team, user);
95+
const criteria = convertBetweenEntityAndDTO(criteriaDTO, Criteria);
96+
const updateCriteria = await this._ratings.updateCriteria(criteria);
7997
return convertBetweenEntityAndDTO(updateCriteria, CriteriaDTO);
8098
}
8199

backend/src/services/rating-service.ts

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { ForbiddenError } from "routing-controller";
12
import { Inject, Service, Token } from "typedi";
23
import { Repository } from "typeorm";
34
import { IService } from ".";
@@ -8,6 +9,8 @@ import {
89
convertBetweenEntityAndDTO,
910
} from "../controllers/dto";
1011
import { User } from "../entities/user";
12+
import { Criteria } from "../entities/criteria";
13+
import { Rating } from "../entities/rating";
1114

1215
export interface IRatingService extends IService {
1316
/**
@@ -30,10 +33,28 @@ export interface IRatingService extends IService {
3033
* Delete single rating by id
3134
*/
3235
deleteRatingByID(id: number, currentUserId: User): Promise<void>;
36+
//
37+
//
38+
/**
39+
* Get all criterias
40+
*/
41+
getAllCriterias(): Promise<readonly Criteria[]>;
42+
/**
43+
* Create new criteria
44+
*/
45+
createCriteria(criteria: Criteria): Promise<Criteria>;
46+
/**
47+
* Update criteria
48+
*/
49+
updateCriteria(criteria: Criteria): Promise<Criteria>;
50+
/**
51+
* Get criteria by id
52+
*/
53+
getCriteriaByID(id: number): Promise<CriteriaResponseDTO | undefined>;
3354
/**
34-
* Request to join a rating
55+
* Delete single criteria by id
3556
*/
36-
requestToJoinRating(ratingId: number, user: User): Promise<void>;
57+
deleteCriteriaByID(id: number, currentUserId: User): Promise<void>;
3758
}
3859

3960
/**

0 commit comments

Comments
 (0)