MCPcopy Create free account
hub / github.com/app-generator/api-server-nodejs / createUserWithToken

Function createUserWithToken

src/services/user.service.ts:8–55  ·  view source on GitHub ↗
(userData: any)

Source from the content-addressed store, hash-verified

6import {DEFAULT_ROLE} from '../constants'
7
8export const createUserWithToken = async (userData: any) => {
9 const userRole = DEFAULT_ROLE
10 const userRepository = connection!.getRepository(User);
11 const activeSessionRepository = connection!.getRepository(ActiveSession);
12 const roleRepository = connection!.getRepository(Role)
13
14 const { login: username, email } = userData;
15 let requiredUser: any = null;
16
17 const user = await userRepository.findOne({ username });
18 const role = await roleRepository.findOne({name: userRole})
19 if(!role) {
20 throw new Error(`no role exists for ${userRole} in db`)
21 }
22
23 if (user) {
24 requiredUser = user;
25 } else {
26 const query = {
27 username,
28 email,
29 user_role: role.id
30 };
31 const u = await userRepository.save(query)
32 requiredUser = u;
33 }
34
35 if (!process.env.SECRET) {
36 throw new Error("SECRET not provided");
37 }
38
39 if (requiredUser) {
40 const token: any = jwt.sign(
41 {
42 id: requiredUser.id,
43 username: requiredUser.username,
44 },
45 process.env.SECRET,
46 {
47 expiresIn: 86400, // 1 week
48 }
49 );
50 const query = { userId: requiredUser.id, token };
51 activeSessionRepository.save(query);
52 requiredUser.token = token;
53 }
54 return requiredUser;
55};

Callers 1

githubOauthHandlerFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected