Bugs in settings fixed, profile added

This commit is contained in:
Torsten Schulz
2024-09-21 00:25:42 +02:00
parent c5a72d57d8
commit e494fe41db
65 changed files with 3121 additions and 7478 deletions

View File

@@ -13,6 +13,10 @@ const initializeSettings = async () => {
where: { name: 'sexuality' },
defaults: { name: 'sexuality' }
});
await SettingsType.findOrCreate({
where: { name: 'flirt' },
defaults: { name: 'flirt' }
});
};
export default initializeSettings;

View File

@@ -4,7 +4,7 @@ import UserParamValue from '../models/type/user_param_value.js';
import Interest from '../models/type/interest.js';
import { Op, } from 'sequelize';
import InterestTranslation from '../models/type/interest_translation.js';
import { sequelize } from '../utils/sequelize.js';
import UserParamVisibilityType from '../models/type/user_param_visibility.js';
const initializeTypes = async () => {
const settingsTypes = await SettingsType.findAll();
@@ -27,8 +27,8 @@ const initializeTypes = async () => {
birthdate: { type: 'date', setting: 'personal' },
zip: { type: 'string', setting: 'personal' },
town: { type: 'string', setting: 'personal' },
bodyheight: { type: 'float', setting: 'view' },
weight: { type: 'float', setting: 'view' },
bodyheight: { type: 'float', setting: 'view', unit: 'cm' },
weight: { type: 'float', setting: 'view', unit: 'kg' },
eyecolor: { type: 'singleselect', setting: 'view' },
haircolor: { type: 'singleselect', setting: 'view' },
hairlength: { type: 'singleselect', setting: 'view' },
@@ -39,19 +39,26 @@ const initializeTypes = async () => {
sexualpreference: { type: 'singleselect', 'setting': 'sexuality', minAge: 14 },
gender: { type: 'singleselect', setting: 'personal' },
pubichair: { type: 'singleselect', setting: 'sexuality', minAge: 14 },
penislenght: { type: 'int', setting: 'sexuality', minAge: 14, gender: 'male' },
brasize: { type: 'string', setting: 'sexuality', minAge: 14, gender: 'female' }
penislength: { type: 'int', setting: 'sexuality', minAge: 14, gender: 'male', unit: 'cm' },
brasize: { type: 'string', setting: 'sexuality', minAge: 14, gender: 'female' },
interestedInGender: { type: 'multiselect', setting: 'flirt', minAge: 14},
hasChildren: { type: 'bool', setting: 'flirt', minAge: 14 },
willChildren: { type: 'bool', setting: 'flirt', minAge: 14 },
smokes: { type: 'singleselect', setting: 'flirt', minAge: 14},
drinks: { type: 'singleselect', setting: 'flirt', minAge: 14 },
};
Object.keys(userParams).forEach(async (key) => {
let orderId = 1;
for (const key of Object.keys(userParams)) {
const item = userParams[key];
const createItem = { description: key, datatype: item.type, settingsId: getSettingsTypeId(item.setting) };
const createItem = { description: key, datatype: item.type, settingsId: getSettingsTypeId(item.setting), orderId: orderId++ };
if (item.minAge) createItem.minAge = item.minAge;
if (item.gender) createItem.gender = item.gender;
await UserParamType.findOrCreate({
if (item.unit) createItem.unit = item.unit;
await UserParamType.findOrCreate({
where: { description: key },
defaults: createItem
});
});
}
const valuesList = {
gender: ['male', 'female', 'transfemale', 'transmale', 'nonbinary'],
language: ['de', 'en'],
@@ -62,17 +69,22 @@ const initializeTypes = async () => {
freckles: ['much', 'medium', 'less', 'none'],
sexualpreference: ['straight', 'gay', 'bi', 'pan', 'asexual'],
pubichair: ['none', 'short', 'medium', 'long', 'hairy', 'waxed', 'landingstrip', 'bikinizone', 'other'],
interestedInGender: ['male', 'female'],
smokes: ['never', 'socially', 'often', 'daily'],
drinks: ['never', 'socially', 'often', 'daily'],
brasize: ['Keine', 'AA', 'A', 'B', 'C', 'D', 'E (DD)', 'F (E)', 'G (F)', 'H (FF)', 'I (G)', 'J (GG)', 'K (H)']
};
Object.keys(valuesList).forEach(async (key) => {
const values = valuesList[key];
const userParamTypeId = await getUserParamTypeId(key);
let orderId = 1;
values.forEach(async (value) => {
await UserParamValue.findOrCreate({
where: {
userParamTypeId: userParamTypeId,
value: value
},
defaults: { userParamTypeId: userParamTypeId, value: value }
defaults: { userParamTypeId: userParamTypeId, value: value, orderId: orderId++ }
})
});
});
@@ -161,6 +173,18 @@ const initializeTypes = async () => {
throw error;
}
}
const visibilityTypes = ['Invisible', 'OnlyFriends', 'FriendsAndAdults', 'AdultsOnly', 'All'];
for (const type of visibilityTypes) {
try {
await UserParamVisibilityType.findOrCreate({
where: { description: type },
defaults: { description: type }
});
} catch (error) {
throw error;
}
}
};
export default initializeTypes;

View File

@@ -4,6 +4,7 @@ import initializeSettings from './initializeSettings.js';
import initializeUserRights from './initializeUserRights.js';
import setupAssociations from '../models/associations.js';
import models from '../models/index.js';
import { createTriggers } from '../models/trigger.js';
const syncDatabase = async () => {
try {
@@ -12,6 +13,7 @@ const syncDatabase = async () => {
for (const model of Object.values(models)) {
await model.sync();
}
createTriggers();
await initializeSettings();
await initializeTypes();