Skip to content

Commit 5d59d23

Browse files
authored
Revert "Ft schedule technical interview (#169)" (#180)
This reverts commit eb83c2b.
1 parent eb83c2b commit 5d59d23

21 files changed

+340
-1350
lines changed

Diff for: .vscode/settings.json

-3
This file was deleted.

Diff for: src/helpers/bulkyMails.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,13 @@ export const sendUserCredentials = async (email: String, password: String) => {
111111
}
112112
};
113113

114+
114115
export const sendEmailTemplate = async (
115116
email: string,
116117
subject: string,
117118
title: string,
118119
body: string,
119-
button?: { url: string; text: string }
120+
button?: { url: string, text: string }
120121
) => {
121122
try {
122123
const logoText = "DevPulse";
@@ -170,7 +171,7 @@ export const sendEmailTemplate = async (
170171
<div style="margin-top: 80px;">
171172
<p style="color: #555; font-size: 14px;">
172173
If you received this email by mistake, simply ignore it. <br />
173-
For any questions, contact us at <a href="mailto: devpulsedev@gmail.com" style="color: ${secondaryColor};">[email protected]</a>.
174+
For any questions, contact us at <a href="mailto: samuel.nishimwe@andela.com" style="color: ${secondaryColor};">[email protected]</a>.
174175
</p>
175176
<a href="" style="margin: 0 10px; display: inline-flex; align-items: center; text-decoration: none;">
176177
<img
@@ -251,7 +252,7 @@ export const sendEmailTemplate = async (
251252
${generateLogo(logoText, mainColor)}
252253
${generateTitle(title)}
253254
${generateBody(body)}
254-
${button ? generateButton(button.url, button.text) : ""}
255+
${button ? generateButton(button.url, button.text) : ''}
255256
${generateFooterLogo()}
256257
${generateSocialIcons()}
257258
${generateFooter()}

Diff for: src/index.ts

+6-14
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,7 @@ import { attendanceResolver } from "./resolvers/attendanceResolver";
5555
import { attendanceSchema } from "./schema/attendanceSchema";
5656
import { performanceResolver } from "./resolvers/performanceResolver";
5757
import { performanceSchema } from "./schema/performanceSchema";
58-
import {
59-
applicationStageDefs,
60-
technicalInterviewDefs,
61-
} from "./schema/applicationStage";
58+
import { applicationStageDefs } from "./schema/applicationStage";
6259
import { applicationStageResolvers } from "./resolvers/applicationStageResolver";
6360
import filterJobResolver from "./resolvers/filterJob";
6461
import filterProgramResolver from "./resolvers/filterPrograms";
@@ -91,12 +88,10 @@ import { jobApplicationTypeDefs } from "./schema/jobApplicationSchema";
9188
import { jobApplicationResolver } from "./resolvers/jobApplicationResolver";
9289
import { blogRelatedResolvers } from "./resolvers/blogRelatedArticlesResolver";
9390
import { blogRelatedArticlesSchema } from "./schema/blogRelatedArticlesSchema";
94-
import { reactionSchema } from "./schema/reactionSchema";
91+
import { reactionSchema } from "./schema/reactionSchema";
9592
import { reactionResolvers } from "./resolvers/reactionResolvers";
9693
import { DocSchema } from "./schema/doc";
9794
import { docResolver } from "./resolvers/Doc";
98-
import { technicalInterviewResolvers } from "./resolvers/scheduleInterviewResolver";
99-
10095
const PORT = process.env.PORT || 3000;
10196

10297
const resolvers = mergeResolvers([
@@ -145,8 +140,7 @@ const resolvers = mergeResolvers([
145140
commentReplyResolvers,
146141
blogRelatedResolvers,
147142
docResolver,
148-
reactionResolvers,
149-
technicalInterviewResolvers,
143+
reactionResolvers
150144
]);
151145
const typeDefs = mergeTypeDefs([
152146
applicationCycleTypeDefs,
@@ -190,9 +184,7 @@ const typeDefs = mergeTypeDefs([
190184
jobApplicationTypeDefs,
191185
blogRelatedArticlesSchema,
192186
DocSchema,
193-
reactionSchema,
194-
applicationStageDefs,
195-
technicalInterviewDefs,
187+
reactionSchema
196188
]);
197189

198190
const server = new ApolloServer({
@@ -205,7 +197,7 @@ const server = new ApolloServer({
205197
try {
206198
authToken =
207199
req.headers.authorization &&
208-
req.headers.authorization.startsWith("Bearer ")
200+
req.headers.authorization.startsWith("Bearer ")
209201
? req.headers.authorization.split(" ")[1]
210202
: req.headers.authorization;
211203
if (authToken) {
@@ -224,4 +216,4 @@ const server = new ApolloServer({
224216
connect().then(() => {
225217
console.log("Database connected!");
226218
server.listen(PORT).then(({ url }) => console.info(`App on ${url}`));
227-
});
219+
});

Diff for: src/models/AuthUser.ts

+8-14
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ const userSchema = new Schema(
1717
type: String,
1818
default: "",
1919
},
20-
isVerified: {
21-
type: Boolean,
22-
default: false,
20+
isVerified:{
21+
type:Boolean,
22+
default:false
2323
},
2424
role: {
2525
type: Schema.Types.ObjectId,
@@ -39,15 +39,7 @@ const userSchema = new Schema(
3939
},
4040
applicationPhase: {
4141
type: String,
42-
enum: [
43-
"Applied",
44-
"Shortlisted",
45-
"Technical Assessment",
46-
"Interview Assessment",
47-
"Admitted",
48-
"Rejected",
49-
"Enrolled",
50-
],
42+
enum: ["Applied", 'Shortlisted', 'Technical Assessment', 'Interview Assessment', 'Admitted', 'Rejected', "Enrolled"],
5143
default: "Applied",
5244
},
5345
isActive: {
@@ -57,15 +49,17 @@ const userSchema = new Schema(
5749
isEmailVerified: {
5850
type: Boolean,
5951
default: false,
52+
6053
},
6154
cohort: {
6255
type: Schema.Types.ObjectId,
6356
ref: "cohortModel",
6457
},
6558
resetToken: String,
66-
resetTokenExpiration: Date,
59+
resetTokenExpiration:Date
60+
6761
},
6862
{ timestamps: true }
6963
);
7064

71-
export const LoggedUserModel = model("LoggedUserModel", userSchema);
65+
export const LoggedUserModel = model("LoggedUserModel", userSchema);

Diff for: src/models/InterviewAssessmentStageSchema.ts

+25-29
Original file line numberDiff line numberDiff line change
@@ -7,36 +7,32 @@ interface IInterviewAssessment extends Document {
77
comments?: string;
88
}
99

10-
const interviewAssessmentSchema = new Schema<IInterviewAssessment>(
11-
{
12-
applicantId: {
13-
type: Schema.Types.ObjectId,
14-
ref: "Trainees",
15-
required: true,
16-
},
17-
status: {
18-
type: String,
19-
enum: ["No action", "Moved", "Rejected", "Admitted"],
20-
default: "No action",
21-
},
22-
interviewScore: {
23-
type: Number,
24-
min: 0,
25-
max: 2,
26-
validate: {
27-
validator: (value: number) =>
28-
value === null || (value >= 0 && value <= 2),
29-
message: "Score must be between 0 and 2.",
30-
},
31-
},
32-
comments: {
33-
type: String,
34-
},
10+
const interviewAssessmentSchema = new Schema<IInterviewAssessment>({
11+
applicantId: {
12+
type: Schema.Types.ObjectId,
13+
ref: "Trainees",
14+
required: true,
3515
},
36-
{
37-
timestamps: true,
38-
}
39-
);
16+
status: {
17+
type: String,
18+
enum: ["No action", "Moved", "Rejected", "Admitted"],
19+
default: "No action",
20+
},
21+
interviewScore: {
22+
type: Number,
23+
min: 0,
24+
max: 2,
25+
validate: {
26+
validator: (value : number) => value === null || (value >= 0 && value <= 2),
27+
message: "Score must be between 0 and 2."
28+
}
29+
},
30+
comments: {
31+
type: String,
32+
},
33+
},{
34+
timestamps: true
35+
});
4036

4137
const InterviewAssessment = mongoose.model<IInterviewAssessment>(
4238
"InterviewAssessment",

Diff for: src/models/ShortlistedSchema.ts

+19-24
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,28 @@ import mongoose, { Schema, Document } from "mongoose";
22

33
interface IShortlisted extends Document {
44
applicantId: mongoose.Schema.Types.ObjectId;
5-
status: "No action" | "Moved" | "Rejected" | "Admitted";
5+
status: "No action" | "Invited" | "Moved" | "Rejected" | "Admitted";
66
comments?: string;
77
}
88

9-
const shortlistedSchema = new Schema<IShortlisted>(
10-
{
11-
applicantId: {
12-
type: Schema.Types.ObjectId,
13-
ref: "Trainees",
14-
required: true,
15-
},
16-
status: {
17-
type: String,
18-
enum: ["No action", "Invited", "Moved", "Rejected", "Admitted"],
19-
default: "No action",
20-
},
21-
comments: {
22-
type: String,
23-
},
9+
const shortlistedSchema = new Schema<IShortlisted>({
10+
applicantId: {
11+
type: Schema.Types.ObjectId,
12+
ref: "Trainees",
13+
required: true,
14+
15+
},
16+
status: {
17+
type: String,
18+
enum: ["No action", "Invited", "Moved", "Rejected", "Admitted"],
19+
default: "No action",
20+
},
21+
comments: {
22+
type: String,
2423
},
25-
{
26-
timestamps: true,
27-
}
28-
);
24+
},{
25+
timestamps: true,
26+
});
2927

30-
const Shortlisted = mongoose.model<IShortlisted>(
31-
"Shortlisted",
32-
shortlistedSchema
33-
);
28+
const Shortlisted = mongoose.model<IShortlisted>("Shortlisted", shortlistedSchema);
3429
export default Shortlisted;

Diff for: src/models/admittedStageSchema.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ interface IAdmitted extends Document {
1010
const admittedSchema = new Schema<IAdmitted>({
1111
applicantId: {
1212
type: Schema.Types.ObjectId,
13-
ref: "Trainee",
13+
ref: "Trainees",
1414
required: true,
1515
},
1616
status: {
@@ -20,6 +20,8 @@ const admittedSchema = new Schema<IAdmitted>({
2020
comments: {
2121
type: String,
2222
},
23+
},{
24+
timestamps: true
2325
});
2426

2527
const Admitted = mongoose.model<IAdmitted>("Admitted", admittedSchema);

Diff for: src/models/dismissedStageSchema.ts

+19-22
Original file line numberDiff line numberDiff line change
@@ -7,30 +7,27 @@ interface IDismissed extends Document {
77
status: "Rejected"; // Added status field
88
}
99

10-
const rejectedSchema = new Schema<IDismissed>(
11-
{
12-
applicantId: {
13-
type: Schema.Types.ObjectId,
14-
ref: "Trainees",
15-
required: true,
16-
},
17-
stageDismissedFrom: {
18-
type: String,
19-
required: true,
20-
},
21-
comments: {
22-
type: String,
23-
},
24-
status: {
25-
type: String,
26-
default: "Rejected",
27-
required: true,
28-
},
10+
const rejectedSchema = new Schema<IDismissed>({
11+
applicantId: {
12+
type: Schema.Types.ObjectId,
13+
ref: "Trainees",
14+
required: true,
2915
},
30-
{
31-
timestamps: true,
16+
stageDismissedFrom: {
17+
type: String,
18+
required: true,
19+
},
20+
comments: {
21+
type: String,
22+
},
23+
status:{
24+
type: String,
25+
default: "Rejected",
26+
required: true,
3227
}
33-
);
28+
},{
29+
timestamps: true
30+
});
3431

3532
const Rejected = mongoose.model<IDismissed>("Dismissed", rejectedSchema);
3633
export default Rejected;

Diff for: src/models/stageSchema.ts

+6-22
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,7 @@ import mongoose, { Schema, Document } from "mongoose";
22

33
interface IStageTracking extends Document {
44
applicantId: mongoose.Schema.Types.ObjectId;
5-
currentStage:
6-
| "Applied"
7-
| "Shortlisted"
8-
| "Technical Assessment"
9-
| "Interview Assessment"
10-
| "Admitted"
11-
| "Rejected";
5+
currentStage: "Applied" | "Shortlisted" | "Technical Assessment" | "Interview Assessment" | "Admitted" | "Rejected";
126
history: [
137
{
148
stage: string;
@@ -27,29 +21,19 @@ const stageTrackingSchema = new Schema<IStageTracking>({
2721
},
2822
currentStage: {
2923
type: String,
30-
enum: [
31-
"Applied",
32-
"Shortlisted",
33-
"Technical Assessment",
34-
"Interview Assessment",
35-
"Admitted",
36-
"Rejected",
37-
],
24+
enum: ["Applied","Shortlisted", "Technical Assessment", "Interview Assessment", "Admitted", "Rejected"],
3825
required: true,
3926
default: "Applied",
4027
},
4128
history: [
4229
{
4330
stage: { type: String, required: true },
44-
comments: { type: String, required: true },
31+
comments:{type:String,required: true},
4532
enteredAt: { type: Date, default: Date.now },
4633
exitedAt: { type: Date },
47-
},
48-
],
34+
}
35+
]
4936
});
5037

51-
const StageTracking = mongoose.model<IStageTracking>(
52-
"StageTracking",
53-
stageTrackingSchema
54-
);
38+
const StageTracking = mongoose.model<IStageTracking>("StageTracking", stageTrackingSchema);
5539
export default StageTracking;

0 commit comments

Comments
 (0)