Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit 546ca74

Browse files
author
dengjun
committed
ci:optional resume
1 parent cf61433 commit 546ca74

File tree

4 files changed

+54
-42
lines changed

4 files changed

+54
-42
lines changed

src/api/common/helper.js

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -421,23 +421,36 @@ async function getRCRMProfile(currentUser) {
421421
/**
422422
* Update Recruit CRM profile details
423423
* @param {object} currentUser the user who performs the operation
424-
* @param {object} file the resume file
425424
* @param {object} data the data to be updated
425+
* @param {object} file the resume file
426426
* @return {object} the returned object
427427
*/
428-
async function updateRCRMProfile(currentUser, file, data) {
428+
async function updateRCRMProfile(currentUser, data, file) {
429429
const token = currentUser.jwtToken;
430430
const url = `${config.RECRUIT_API}/api/recruit/profile`;
431-
const res = await request
432-
.post(url)
433-
.set("Authorization", token)
434-
.set("Content-Type", "multipart/form-data")
435-
.set("Accept", "application/json")
436-
.field("phone", data.phone)
437-
.field("availability", data.availability)
438-
.field("city", data.city)
439-
.field("countryName", data.countryName)
440-
.attach("resume", file.data, file.name);
431+
let res = null;
432+
if (file) {
433+
res = await request
434+
.post(url)
435+
.set("Authorization", token)
436+
.set("Content-Type", "multipart/form-data")
437+
.set("Accept", "application/json")
438+
.field("phone", data.phone)
439+
.field("availability", data.availability)
440+
.field("city", data.city)
441+
.field("countryName", data.countryName)
442+
.attach("resume", file.data, file.name);
443+
} else {
444+
res = await request
445+
.post(url)
446+
.set("Authorization", token)
447+
.set("Content-Type", "multipart/form-data")
448+
.set("Accept", "application/json")
449+
.field("phone", data.phone)
450+
.field("availability", data.availability)
451+
.field("city", data.city)
452+
.field("countryName", data.countryName);
453+
}
441454
localLogger.debug({
442455
context: "updateRCRMProfile",
443456
message: `response body: ${JSON.stringify(res.body)}`,

src/api/controllers/ProfileController.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ async function getMyProfile(req, res) {
1919
* @param res the response
2020
*/
2121
async function updateMyProfile(req, res) {
22-
await service.updateMyProfile(req.authUser, req.files, req.body);
22+
await service.updateMyProfile(req.authUser, req.body, req.files);
2323
res.status(204).end();
2424
}
2525

src/api/services/ProfileService.js

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ getMyProfile.schema = Joi.object()
4949
* @param {object} currentUser the user who perform this operation.
5050
* @param {object} data the data to be updated
5151
*/
52-
async function updateMyProfile(currentUser, files, data) {
52+
async function updateMyProfile(currentUser, data, files) {
5353
// we expect logged-in users
5454
if (currentUser.isMachine) {
5555
return;
5656
}
5757
// check if file was truncated
58-
if (files.resume.truncated) {
58+
if (files && files.resume.truncated) {
5959
throw new errors.BadRequestError(
6060
`Maximum allowed file size is ${config.MAX_ALLOWED_FILE_SIZE_MB} MB`
6161
);
@@ -65,7 +65,7 @@ async function updateMyProfile(currentUser, files, data) {
6565
`^.*\.(${_.join(config.ALLOWED_FILE_TYPES, "|")})$`,
6666
"i"
6767
);
68-
if (!regex.test(files.resume.name)) {
68+
if (files && !regex.test(files.resume.name)) {
6969
throw new errors.BadRequestError(
7070
`Allowed file types are: ${_.join(config.ALLOWED_FILE_TYPES, ",")}`
7171
);
@@ -142,33 +142,30 @@ async function updateMyProfile(currentUser, files, data) {
142142
await helper.updateMemberTraits(currentUser, memberTraits);
143143
}
144144
}
145-
await helper.updateRCRMProfile(currentUser, files.resume, {
146-
phone: data.phone,
147-
availability: data.availability,
148-
city: data.city,
149-
countryName: data.countryName,
150-
});
145+
await helper.updateRCRMProfile(
146+
currentUser,
147+
{
148+
phone: data.phone,
149+
availability: data.availability,
150+
city: data.city,
151+
countryName: data.countryName,
152+
},
153+
files && files.resume
154+
);
151155
}
152156

153-
updateMyProfile.schema = Joi.object()
154-
.keys({
155-
currentUser: Joi.object().required(),
156-
files: Joi.object()
157-
.keys({
158-
resume: Joi.object().required(),
159-
})
160-
.required(),
161-
data: Joi.object()
162-
.keys({
163-
city: Joi.string().required(),
164-
country: Joi.string().required(),
165-
countryName: Joi.string().required(),
166-
phone: Joi.string().required(),
167-
availability: Joi.boolean().required(),
168-
})
169-
.required(),
170-
})
171-
.required();
157+
updateMyProfile.schema = Joi.object({
158+
currentUser: Joi.object().required(),
159+
data: Joi.object()
160+
.keys({
161+
city: Joi.string().required(),
162+
country: Joi.string().required(),
163+
countryName: Joi.string().required(),
164+
phone: Joi.string().required(),
165+
availability: Joi.boolean().required(),
166+
})
167+
.required(),
168+
}).unknown();
172169

173170
module.exports = {
174171
getMyProfile,

src/services/myGigs.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,10 @@ async function updateProfile(profile) {
134134
countryName: profile.countryName,
135135
phone: profile.phone,
136136
availability: profile.status === GIG_STATUS.AVAILABLE ? true : false,
137-
resume: profile.file,
138137
};
138+
if (profile.file) {
139+
payload.resume = profile.file;
140+
}
139141

140142
// add info to formData to send to server
141143
const formData = new FormData();

0 commit comments

Comments
 (0)