fixing imports to restore build

All relevant model interfaces now come from @gadget/api
This commit is contained in:
Rob Colbert 2026-04-28 12:47:26 -04:00
parent cc6d3b901a
commit 6ee25642b8
8 changed files with 32 additions and 29 deletions

View File

@ -4,7 +4,7 @@
import { Socket } from "socket.io";
import { SocketSession, SocketSessionType } from "./socket-session";
import { IUser } from "@/models/user";
import { IUser } from "@gadget/api";
export class CodeSession extends SocketSession {
protected type: SocketSessionType = SocketSessionType.Code;

View File

@ -29,7 +29,7 @@ export interface CsrfTokenOptions {
import { ApiClientStatus } from "../models/api-client.js";
import { CsrfToken, ICsrfToken } from "../models/csrf-token.js";
import { IUser } from "../models/user.js";
import { IUser } from "@gadget/api";
import { DtpComponent } from "./component.js";
import { DtpPaginationParameters } from "./pagination-parameters.js";
@ -98,7 +98,7 @@ export abstract class DtpController implements DtpComponent {
}
const apiClientIdObj = Types.ObjectId.createFromHexString(
apiClientId as string
apiClientId as string,
);
const apiClient = await ApiClientService.getById(apiClientIdObj);
if (!apiClient) {
@ -155,10 +155,12 @@ export abstract class DtpController implements DtpComponent {
return async (
req: Request,
res: Response,
next: NextFunction
next: NextFunction,
): Promise<void> => {
if (!req.user) {
res.status(403).json({ success: false, message: "Authentication required" });
res
.status(403)
.json({ success: false, message: "Authentication required" });
return;
}
next();
@ -169,11 +171,13 @@ export abstract class DtpController implements DtpComponent {
return async (
req: Request,
res: Response,
next: NextFunction
next: NextFunction,
): Promise<void> => {
const user: IUser | null | undefined = req.user;
if (!user || !user.flags.isAdmin) {
res.status(403).json({ success: false, message: "Admin access required" });
res
.status(403)
.json({ success: false, message: "Admin access required" });
return;
}
next();
@ -193,7 +197,7 @@ export abstract class DtpController implements DtpComponent {
"failed to receive a default export class from child controller",
{
script: pathObj.name,
}
},
);
throw new Error("Child controller failed to provide a default export");
}
@ -228,7 +232,7 @@ export abstract class DtpController implements DtpComponent {
req: Request,
maxPerPage: number,
pageParamName: string = "p",
cppParamName: string = "cpp"
cppParamName: string = "cpp",
): DtpPaginationParameters {
const pageParam: string = req.query[pageParamName]
? (req.query[pageParamName] as string)
@ -255,7 +259,7 @@ export abstract class DtpController implements DtpComponent {
seconds: number,
limit: number,
message: string,
keyGenerator?: (req: Request, res: Response) => string
keyGenerator?: (req: Request, res: Response) => string,
): RequestHandler {
return rateLimit({
windowMs: seconds * 1000,
@ -287,7 +291,7 @@ export abstract class DtpController implements DtpComponent {
{
dest: path.join(env.https.uploadPath, slug),
},
options || {}
options || {},
);
return multer(options);
@ -302,7 +306,7 @@ export abstract class DtpController implements DtpComponent {
*/
async createCsrfToken(
req: Request,
options: CsrfTokenOptions
options: CsrfTokenOptions,
): Promise<ICsrfToken> {
const NOW = new Date();
@ -310,7 +314,7 @@ export abstract class DtpController implements DtpComponent {
{
expiresMinutes: 30,
},
options
options,
);
if (options.expiresMinutes > 120) {

View File

@ -2,10 +2,9 @@
// Copyright (C) 2026 Robert Colbert <rob.colbert@openplatform.us>
// All Rights Reserved
import { IDroneRegistration } from "@/models/drone-registration";
import { IUser, IDroneRegistration } from "@gadget/api";
import { SocketSession, SocketSessionType } from "./socket-session";
import { Socket } from "socket.io";
import { IUser } from "@/models/user";
export class DroneSession extends SocketSession {
protected type: SocketSessionType = SocketSessionType.Drone;

View File

@ -3,7 +3,7 @@
// All Rights Reserved
import { Socket } from "socket.io";
import { IUser } from "@/models/user";
import { IUser } from "@gadget/api";
import { DtpLog } from "./log";
export enum SocketSessionType {

View File

@ -14,7 +14,7 @@ import EmailVerification, {
EmailVerificationStatus,
IEmailVerification,
} from "../models/email-verification.js";
import { IUser } from "../models/user.js";
import { IUser } from "@gadget/api";
import UserService from "./user.js";
import { DtpService } from "../lib/service.js";
@ -140,7 +140,7 @@ The ${env.site.name} Team
if (verification.status !== EmailVerificationStatus.Pending) {
const error = new Error(
`Verification code is not pending (status: ${verification.status})`
`Verification code is not pending (status: ${verification.status})`,
);
error.statusCode = 400;
throw error;
@ -161,7 +161,7 @@ The ${env.site.name} Team
{
status: EmailVerificationStatus.Verified,
},
{ new: true, populate: this.populateEmailVerification, lean: true }
{ new: true, populate: this.populateEmailVerification, lean: true },
);
if (!newVerification) {
const error = new Error("Failed to update verification status");

View File

@ -2,14 +2,13 @@
// Copyright (C) 2026 Robert Colbert <rob.colbert@openplatform.us>
// All Rights Reserved
import DroneRegistration, {
DroneStatus,
IDroneRegistration,
} from "@/models/drone-registration.js";
import { DtpService } from "../lib/service.js";
import { IUser } from "@/models/user.js";
import { PopulateOptions, Types } from "mongoose";
import { IUser, DroneStatus, IDroneRegistration } from "@gadget/api";
import DroneRegistration from "@/models/drone-registration.js";
import { DtpService } from "../lib/service.js";
export interface IDroneDefinition {
hostname: string;
}

View File

@ -11,7 +11,7 @@ import jwt from "jsonwebtoken";
import dayjs from "dayjs";
import geoip from "geoip-lite";
import { IUser } from "../models/user.js";
import { IUser } from "@gadget/api";
import { IWebToken, WebToken } from "../models/web-token.js";
import { WebVisit } from "../models/web-visit.js";

View File

@ -8,13 +8,14 @@ import { MongooseBaseQueryOptions, Types } from "mongoose";
import { v4 as uuidv4 } from "uuid";
import { filterText } from "dtp-cleantext";
import User, { IUser } from "../models/user.ts";
import User from "../models/user.ts";
import { IUser } from "@gadget/api";
import ContactService from "./contact.ts";
import CryptoService from "./crypto.ts";
import { DtpPaginationParameters } from "../lib/pagination-parameters.ts";
import { DtpService } from "../lib/service.js";
import { DtpPaginationParameters } from "../lib/pagination-parameters.ts";
export interface IUserUpdate {
email: string;