@social-mail/social-mail-web-server 1.7.8 → 1.7.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@social-mail/social-mail-web-server",
3
- "version": "1.7.8",
3
+ "version": "1.7.10",
4
4
  "description": "## Phase 1",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -138,6 +138,8 @@ import { WebSiteChannelDomain } from "./entities/WebSiteChannelDomain.js";
138
138
  import WebSiteChannelDomainEvents from "./events/WebSiteChannelDomainEvents.js";
139
139
  import { WebSiteHostEvents } from "./events/WebSiteHostEvents.js";
140
140
  import { WebSiteChannelEvents } from "./events/WebSiteChannelEvents.js";
141
+ import CachedItem from "./entities/CachedItem.js";
142
+ import CachedItemEvents from "./events/CachedItemEvents.js";
141
143
 
142
144
 
143
145
  @RegisterSingleton
@@ -152,6 +154,7 @@ export default class SocialMailContextEvents extends ContextEvents {
152
154
  this.register(AccessToken, AccessTokenEvents);
153
155
  this.register(AppRole, AppRoleEvents);
154
156
  this.register(EmailLog, EmailLogEvents);
157
+ this.register(CachedItem, CachedItemEvents);
155
158
  this.register(Configuration, ConfigurationEvents);
156
159
  this.register(Contact, ContactEvent);
157
160
  this.register(ContactItem, ContactItemEvent);
@@ -0,0 +1,22 @@
1
+ import { IEntityQuery } from "@entity-access/entity-access/dist/model/IFilterWithParameter.js";
2
+ import CachedItem from "../entities/CachedItem.js";
3
+ import AuthenticatedEvents from "./AuthenticatedEvents.js";
4
+ import ChangeEntry from "@entity-access/entity-access/dist/model/changes/ChangeEntry.js";
5
+ import Inject from "@entity-access/entity-access/dist/di/di.js";
6
+ import BaseStorage from "../../storage/BaseStorage.js";
7
+
8
+ export default class CachedItemEvents extends AuthenticatedEvents<CachedItem> {
9
+
10
+ @Inject
11
+ storage: BaseStorage;
12
+
13
+ filter(query: IEntityQuery<CachedItem>) {
14
+ this.sessionUser.ensureIsAdmin();
15
+ return query;
16
+ }
17
+
18
+ async beforeDelete(entity: CachedItem, entry: ChangeEntry<CachedItem>) {
19
+ await this.storage.deleteFile(`cache/${entity.itemID}`);
20
+ }
21
+
22
+ }