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";
|
import type { User } from "./user";
|
||||||
|
|
||||||
export interface InternshipStatusData {
|
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) {
|
switch (status) {
|
||||||
case InternshipStatus.SUBMITTED:
|
case InternshipStatus.SUBMITTED:
|
||||||
|
if (user_role === Role.EMPLOYER) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
return [InternshipStatus.CONFIRMED, InternshipStatus.DENIED];
|
return [InternshipStatus.CONFIRMED, InternshipStatus.DENIED];
|
||||||
case InternshipStatus.CONFIRMED:
|
case InternshipStatus.CONFIRMED:
|
||||||
|
if (user_role === Role.EMPLOYER) {
|
||||||
|
return [InternshipStatus.DENIED];
|
||||||
|
}
|
||||||
|
|
||||||
return [InternshipStatus.SUBMITTED, InternshipStatus.DENIED, InternshipStatus.DEFENDED, InternshipStatus.NOT_DEFENDED];
|
return [InternshipStatus.SUBMITTED, InternshipStatus.DENIED, InternshipStatus.DEFENDED, InternshipStatus.NOT_DEFENDED];
|
||||||
case InternshipStatus.DENIED:
|
case InternshipStatus.DENIED:
|
||||||
|
if (user_role === Role.EMPLOYER) {
|
||||||
|
return [InternshipStatus.CONFIRMED];
|
||||||
|
}
|
||||||
|
|
||||||
return [InternshipStatus.SUBMITTED, InternshipStatus.CONFIRMED];
|
return [InternshipStatus.SUBMITTED, InternshipStatus.CONFIRMED];
|
||||||
case InternshipStatus.DEFENDED:
|
case InternshipStatus.DEFENDED:
|
||||||
return [];
|
return [];
|
||||||
|
|||||||
Reference in New Issue
Block a user