diff --git a/src/controllers/Routes.ts b/src/controllers/Routes.ts index 77b05a4..8819f3f 100644 --- a/src/controllers/Routes.ts +++ b/src/controllers/Routes.ts @@ -101,6 +101,8 @@ export const Routes : Route[] = [ {path: "/settings/upload_account_image", cb: (h) => SettingsController.UploadAccountImage(h)}, + {path: "/settings/delete_account_image", cb: (h) => SettingsController.DeleteAccountImage(h)}, + // Friends controller {path: "/friends/getList", cb: (h) => FriendsController.GetList(h)}, diff --git a/src/controllers/SettingsController.ts b/src/controllers/SettingsController.ts index cc0e93b..0cc3421 100644 --- a/src/controllers/SettingsController.ts +++ b/src/controllers/SettingsController.ts @@ -232,4 +232,14 @@ export class SettingsController { h.success(); } + + /** + * Delete account account image + * + * @param h Request handler + */ + public static async DeleteAccountImage(h: RequestHandler) { + await AccountImageHelper.Delete(h.getUserId()); + h.success(); + } } \ No newline at end of file diff --git a/src/helpers/AccountImageHelper.ts b/src/helpers/AccountImageHelper.ts index 252e5f3..a53196e 100644 --- a/src/helpers/AccountImageHelper.ts +++ b/src/helpers/AccountImageHelper.ts @@ -40,6 +40,21 @@ export class AccountImageHelper { writeFileSync(this.GetPathMetadataFile(userID), path.replace("avatars/", "")); } + /** + * Delete (remove) a user account image + * + * @param userID Target user ID + */ + public static async Delete(userID: number) { + const currInfo = await this.Get(userID); + if(currInfo.hasImage) { + unlinkSync(currInfo.sysPath); + + // Delete meta file + unlinkSync(this.GetPathMetadataFile(userID)); + } + } + /** * Get the content of the file associated to the user account image, if any *