+ /* ************ Email verification ************ */
+
+ async setVerifyEmailVerificationString (userId: number) {
+ const generatedString = await generateRandomString(32)
+
+ await this.setValue(this.generateVerifyEmailKey(userId), generatedString, USER_EMAIL_VERIFY_LIFETIME)
+
+ return generatedString
+ }
+
+ async getVerifyEmailLink (userId: number) {
+ return this.getValue(this.generateVerifyEmailKey(userId))
+ }
+
+ /* ************ Contact form per IP ************ */
+
+ async setContactFormIp (ip: string) {
+ return this.setValue(this.generateContactFormKey(ip), '1', CONTACT_FORM_LIFETIME)
+ }
+
+ async doesContactFormIpExist (ip: string) {
+ return this.exists(this.generateContactFormKey(ip))
+ }
+
+ /* ************ Views per IP ************ */
+