You've already forked isop-mirror
feat: limit possible new internship states for employers
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { Role } from "./role";
|
||||
import type { User } from "./user";
|
||||
|
||||
export interface InternshipStatusData {
|
||||
@@ -34,13 +35,25 @@ export function prettyInternshipStatus(status: InternshipStatus) {
|
||||
}
|
||||
}
|
||||
|
||||
export function possibleNextStates(status: InternshipStatus) {
|
||||
export function possibleNextStates(status: InternshipStatus, user_role: Role) {
|
||||
switch (status) {
|
||||
case InternshipStatus.SUBMITTED:
|
||||
if (user_role === Role.EMPLOYER) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return [InternshipStatus.CONFIRMED, InternshipStatus.DENIED];
|
||||
case InternshipStatus.CONFIRMED:
|
||||
if (user_role === Role.EMPLOYER) {
|
||||
return [InternshipStatus.DENIED];
|
||||
}
|
||||
|
||||
return [InternshipStatus.SUBMITTED, InternshipStatus.DENIED, InternshipStatus.DEFENDED, InternshipStatus.NOT_DEFENDED];
|
||||
case InternshipStatus.DENIED:
|
||||
if (user_role === Role.EMPLOYER) {
|
||||
return [InternshipStatus.CONFIRMED];
|
||||
}
|
||||
|
||||
return [InternshipStatus.SUBMITTED, InternshipStatus.CONFIRMED];
|
||||
case InternshipStatus.DEFENDED:
|
||||
return [];
|
||||
|
||||
Reference in New Issue
Block a user