feat(api): create endpoint to update user profile
This commit is contained in:
parent
da0b811428
commit
c86363b766
38
server/api/user/me/profile.put.ts
Normal file
38
server/api/user/me/profile.put.ts
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
import san from "sanitize-html";
|
||||||
|
import axios from "axios";
|
||||||
|
import { Profile } from "~/lib/client/types/form/myStuff";
|
||||||
|
import { apiRoot, h2m } from "~/lib/server/constants";
|
||||||
|
import forumId from "~/lib/server/forumId";
|
||||||
|
import isLoggedIn from "~/lib/server/middlewareButNotReally/isLoggedIn";
|
||||||
|
import { User } from "~/models/user";
|
||||||
|
|
||||||
|
export default eventHandler(async (ev) => {
|
||||||
|
isLoggedIn(ev);
|
||||||
|
const body = await readBody<Profile>(ev);
|
||||||
|
const update: any = {
|
||||||
|
"profile.occupation": body.occupation,
|
||||||
|
"profile.website": body.website,
|
||||||
|
"profile.blog": body.blog,
|
||||||
|
"profile.bio": san(body.bio),
|
||||||
|
"profile.showEmail": !!body.showEmail,
|
||||||
|
"profile.avatar": body.avatar,
|
||||||
|
};
|
||||||
|
let d = {
|
||||||
|
signature: h2m.turndown(body.signature),
|
||||||
|
_uid: 1,
|
||||||
|
};
|
||||||
|
let lookup = await forumId(ev.context.currentUser!._id!);
|
||||||
|
await axios.put(`${apiRoot}/v3/users/${lookup}`, {
|
||||||
|
body: d,
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${useRuntimeConfig().nodebb.masterToken}`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
await User.findByIdAndUpdate(ev.context.currentUser?._id, {
|
||||||
|
$set: update,
|
||||||
|
});
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
message: "Profile updated successfully",
|
||||||
|
};
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user