mirror of
https://github.com/OneUptime/oneuptime
synced 2024-11-22 23:30:10 +00:00
49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import StatusPageSubscriberService, {
|
|
Service as StatusPageSubscriberServiceType,
|
|
} from "../Services/StatusPageSubscriberService";
|
|
import {
|
|
ExpressRequest,
|
|
ExpressResponse,
|
|
NextFunction,
|
|
} from "../Utils/Express";
|
|
import Response from "../Utils/Response";
|
|
import BaseAPI from "./BaseAPI";
|
|
import StatusPageSubscriber from "Common/Models/DatabaseModels/StatusPageSubscriber";
|
|
|
|
export default class StatusPageSubscriberAPI extends BaseAPI<
|
|
StatusPageSubscriber,
|
|
StatusPageSubscriberServiceType
|
|
> {
|
|
public constructor() {
|
|
super(StatusPageSubscriber, StatusPageSubscriberService);
|
|
|
|
this.router.get(
|
|
`${new this.entityType().getCrudApiPath()?.toString()}/unsubscribe/:id`,
|
|
async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
|
|
try {
|
|
await this.service.updateOneBy({
|
|
query: {
|
|
_id: req.params["id"] as string,
|
|
},
|
|
data: {
|
|
isUnsubscribed: true,
|
|
},
|
|
props: {
|
|
isRoot: true,
|
|
ignoreHooks: true,
|
|
},
|
|
});
|
|
|
|
return Response.sendHtmlResponse(
|
|
req,
|
|
res,
|
|
"<html><body><p> You have been unsubscribed.</p><body><html>",
|
|
);
|
|
} catch (err) {
|
|
next(err);
|
|
}
|
|
},
|
|
);
|
|
}
|
|
}
|