Code Duplication    Length = 33-33 lines in 2 locations

v2/models/auth.js 1 location

@@ 99-131 (lines=33) @@
96
    getUniqueAPIKey: function(res, path, email) {
97
        const apiKey = hat();
98
99
        db.get("SELECT key FROM apikeys WHERE key = ?", apiKey, (err, row) => {
100
            if (err) {
101
                return res.status(401).json({
102
                    errors: {
103
                        status: 401,
104
                        source: path,
105
                        title: "Database error",
106
                        detail: err.message
107
                    }
108
                });
109
            }
110
111
            if (row === undefined) {
112
                db.run("INSERT INTO apikeys (key, email) VALUES (?, ?)",
113
                    apiKey,
114
                    email, (err) => {
115
                        if (err) {
116
                            return res.status(401).json({
117
                                errors: {
118
                                    status: 401,
119
                                    source: path,
120
                                    title: "Database error",
121
                                    detail: err.message
122
                                }
123
                            });
124
                        }
125
126
                        return res.json({ data: { key: apiKey }});
127
                    });
128
            } else {
129
                return auth.getUniqueAPIKey(res, email);
130
            }
131
        });
132
    },
133
134
    login: function(res, body) {

v1/models/auth.js 1 location

@@ 79-111 (lines=33) @@
76
    function getUniqueAPIKey(res, path, email) {
77
        const apiKey = hat();
78
79
        db.get("SELECT key FROM apikeys WHERE key = ?", apiKey, (err, row) => {
80
            if (err) {
81
                return res.status(401).json({
82
                    errors: {
83
                        status: 401,
84
                        source: path,
85
                        title: "Database error",
86
                        detail: err.message
87
                    }
88
                });
89
            }
90
91
            if (row === undefined) {
92
                db.run("INSERT INTO apikeys (key, email) VALUES (?, ?)",
93
                    apiKey,
94
                    email, (err) => {
95
                        if (err) {
96
                            return res.status(401).json({
97
                                errors: {
98
                                    status: 401,
99
                                    source: path,
100
                                    title: "Database error",
101
                                    detail: err.message
102
                                }
103
                            });
104
                        }
105
106
                        res.json({ data: { key: apiKey }});
107
                    });
108
            } else {
109
                getUniqueAPIKey(res, email);
110
            }
111
        });
112
    }
113
114
    function login(res, body) {