Update database persistency code.

Commit
25c96328193c7d6c5e16282941d9119a68840bf1
Author
Marius Peter <marius.peter@tutanota.com>
Author date
Committer
Marius Peter <marius.peter@tutanota.com>
Committer date
Changed files
src/BaselineOfMyFitnessTracker/BaselineOfMyFitnessTracker.class.st
index e57181d9..a2bc0d2c 100644..100644
@@ -39,7 +39,8 @@
39 39 repository: 'github://astares/Seaside-Bootstrap5:master/src'.
40 40 spec
41 41 baseline: 'SQLite3';
42 Removed: repository: 'github://pharo-rdbms/Pharo-SQLite3/src'.
42 Added: repository: 'github://pharo-rdbms/Pharo-SQLite3/src';
43 Added: load: #( 'glorp' ).
43 44 spec
44 45 baseline: 'Glorp';
45 46 repository: 'github://pharo-rdbms/glorp'
src/MyFitnessTracker-Core/MFTExercise.class.st
index c9e8f37b..b7c7fb03 100644..100644
@@ -19,17 +19,6 @@
19 19 #package : 'MyFitnessTracker-Core'
20 20 }
21 21
22 Removed: { #category : 'instance creation' }
23 Removed: MFTExercise class >> newFromDictionary: aDictionary [
24 Removed:
25 Removed: ^ self new
26 Removed: id: (aDictionary at: 'id');
27 Removed: primaryMuscleGroupId: (aDictionary at: 'primary_muscle_group_id');
28 Removed: englishName: (aDictionary at: 'english_name');
29 Removed: frenchName: (aDictionary at: 'french_name');
30 Removed: yourself
31 Removed: ]
32 Removed:
33 22 { #category : 'accessing' }
34 23 MFTExercise >> englishName [
35 24
src/MyFitnessTracker-Core/MFTMuscle.class.st
index aac0d0d3..abc58953 100644..100644
@@ -15,18 +15,6 @@
15 15 }
16 16
17 17 { #category : 'as yet unclassified' }
18 Removed: MFTMuscle class >> newFromDictionary: aDictionary [
19 Removed:
20 Removed: ^ self new
21 Removed: id: (aDictionary at: 'id');
22 Removed: primaryMuscleGroupId: (aDictionary at: 'muscle_group_id');
23 Removed: latinName: (aDictionary at: 'latin_name');
24 Removed: englishName: (aDictionary at: 'english_name');
25 Removed: function: (aDictionary at: 'function');
26 Removed: yourself
27 Removed: ]
28 Removed:
29 Removed: { #category : 'as yet unclassified' }
30 18 MFTMuscle >> englishName [
31 19
32 20 ^ englishName
src/MyFitnessTracker-Core/MFTMuscleGroup.class.st
index 4c504490..8089b38b 100644..100644
@@ -26,22 +26,6 @@
26 26 { 12. 13 } asSet }
27 27 ]
28 28
29 Removed: { #category : 'instance creation' }
30 Removed: MFTMuscleGroup class >> newFromDictionary: aDictionary [
31 Removed:
32 Removed: | id |
33 Removed: id := aDictionary at: 'id'.
34 Removed:
35 Removed: ^ self new
36 Removed: id: id;
37 Removed: englishName: (aDictionary at: 'english_name');
38 Removed: frenchName: (aDictionary at: 'french_name');
39 Removed: function: (aDictionary at: 'function');
40 Removed: muscles: (MFTSQLite3Database allMuscles select: [ :each |
41 Removed: each primaryMuscleGroupId = id ]);
42 Removed: yourself
43 Removed: ]
44 Removed:
45 29 { #category : 'as yet unclassified' }
46 30 MFTMuscleGroup >> englishName [
47 31
src/MyFitnessTracker-Core/MFTSet.class.st
index b3b5b883..a0076c14 100644..100644
@@ -18,21 +18,6 @@
18 18 #package : 'MyFitnessTracker-Core'
19 19 }
20 20
21 Removed: { #category : 'instance creation' }
22 Removed: MFTSet class >> newFromDictionary: aDictionary [
23 Removed:
24 Removed: ^ self new
25 Removed: id: (aDictionary at: 'id');
26 Removed: workoutId: (aDictionary at: 'workout_id');
27 Removed: exerciseId: (aDictionary at: 'exercise_id');
28 Removed: number: (aDictionary at: 'set_number');
29 Removed: groupId: (aDictionary at: 'set_group');
30 Removed: reps: (aDictionary at: 'reps');
31 Removed: rpe: (aDictionary at: 'rpe');
32 Removed: restAfter: (aDictionary at: 'rest_after');
33 Removed: yourself
34 Removed: ]
35 Removed:
36 21 { #category : 'as yet unclassified' }
37 22 MFTSet class >> placeholderCollection [
38 23
src/MyFitnessTracker-Core/MFTSetGroup.class.st
index ae73f6b3..96454295 100644..100644
@@ -3,7 +3,7 @@
3 3 "
4 4 Class {
5 5 #name : 'MFTSetGroup',
6 Removed: #superclass : 'Object',
6 Added: #superclass : 'MFTObject',
7 7 #instVars : [
8 8 'sets'
9 9 ],
src/MyFitnessTracker-Core/MFTUser.class.st
index 42f7f82a..8786e9a6 100644..100644
@@ -46,22 +46,6 @@
46 46 ]
47 47
48 48 { #category : 'as yet unclassified' }
49 Removed: MFTUser class >> newFromDictionary: aDictionary [
50 Removed:
51 Removed: ^ self new
52 Removed: id: (aDictionary at: 'id');
53 Removed: username: (aDictionary at: 'username');
54 Removed: passwordHash: (aDictionary at: 'password_hash');
55 Removed: realFirstName: (aDictionary at: 'real_first_name');
56 Removed: realLastName: (aDictionary at: 'real_last_name');
57 Removed: dateOfBirth: (aDictionary at: 'date_of_birth');
58 Removed: lastLoginDateAndTime: (aDictionary at: 'last_login_date_time');
59 Removed: accountRegisterDateAndTime:
60 Removed: (aDictionary at: 'account_register_date_time');
61 Removed: yourself
62 Removed: ]
63 Removed:
64 Removed: { #category : 'as yet unclassified' }
65 49 MFTUser >> accountRegisterDateAndTime [
66 50
67 51 ^ accountRegisterDateAndTime
@@ -206,9 +190,9 @@
206 190 { #category : 'as yet unclassified' }
207 191 MFTUser >> workouts [
208 192
209 Removed: ^ self session user isLoggedIn
193 Added: ^ {MFTWorkout new. MFTWorkout new} "self session user isLoggedIn
210 194 ifTrue: [ self session db getAllUserWorkouts ]
211 Removed: ifFalse: [ workouts ]
195 Added: ifFalse: [ workouts ]"
212 196 ]
213 197
214 198 { #category : 'as yet unclassified' }
src/MyFitnessTracker-Core/MFTWeight.class.st
index fd587e8a..9b87dba4 100644..100644
@@ -17,21 +17,11 @@
17 17 MFTWeight class >> kilograms: aWeight date: aDate [
18 18
19 19 ^ self new
20 Removed: weight: aWeight;
20 Added: kilograms: aWeight;
21 21 date: aDate;
22 22 yourself
23 23 ]
24 24
25 Removed: { #category : 'instance creation' }
26 Removed: MFTWeight class >> newFromDictionary: aDictionary [
27 Removed:
28 Removed: ^ self new
29 Removed: initialize: (aDictionary at: 'value')
30 Removed: date:
31 Removed: (Date readFrom: (aDictionary at: 'date') pattern: 'yyyy-mm-dd')
32 Removed: yourself
33 Removed: ]
34 Removed:
35 25 { #category : 'as yet unclassified' }
36 26 MFTWeight class >> placeholderCollection [
37 27
@@ -58,7 +48,7 @@
58 48 MFTWeight >> initialize [
59 49
60 50 super initialize.
61 Removed: kilograms := Integer new.
51 Added: kilograms := 0.
62 52 date := Date new
63 53 ]
64 54
src/MyFitnessTracker-Core/MFTWorkout.class.st
index c204c3ad..24a1f7e4 100644..100644
@@ -16,17 +16,6 @@
16 16 }
17 17
18 18 { #category : 'as yet unclassified' }
19 Removed: MFTWorkout class >> newFromDictionary: aDictionary [
20 Removed:
21 Removed: ^ self new
22 Removed: id: (aDictionary at: 'id');
23 Removed: userId: (aDictionary at: 'user_id');
24 Removed: date: (Date readFrom: (aDictionary at: 'date') pattern: 'yyyy-mm-dd');
25 Removed: primaryMuscleGroupId: (aDictionary at: 'primary_muscle_group_id');
26 Removed: yourself
27 Removed: ]
28 Removed:
29 Removed: { #category : 'as yet unclassified' }
30 19 MFTWorkout class >> placeholderCollection [
31 20
32 21 | placeholderSets workout1 workout2 workout3 |
src/MyFitnessTracker-Database/MFTDescriptorSystem.class.st
index 835739f2..fcd0be56 100644..100644
@@ -1,3 +1,6 @@
1 Added: "
2 Added: I implement database persistency for My Fitness Tracker core domain objects.
3 Added: "
1 4 Class {
2 5 #name : 'MFTDescriptorSystem',
3 6 #superclass : 'DescriptorSystem',
@@ -106,15 +109,8 @@
106 109 table := self tableNamed: 'EXERCISE'.
107 110 aDescriptor table: table.
108 111 aDescriptor directMappingFor: #id.
109 Removed: (aDescriptor newMapping: DirectMapping)
110 Removed: from: #englishName
111 Removed: to: (table fieldNamed: 'englishName').
112 Removed: (aDescriptor newMapping: DirectMapping)
113 Removed: from: #frenchName
114 Removed: to: (table fieldNamed: 'frenchName').
115 Removed: (aDescriptor newMapping: DirectMapping)
116 Removed: from: #primaryMuscleGroupId
117 Removed: to: (table fieldNamed: 'primaryMuscleGroupId')
112 Added: aDescriptor directMappingFor: #frenchName.
113 Added: aDescriptor directMappingFor: #englishName
118 114 ]
119 115
120 116 { #category : 'descriptors' }
@@ -126,7 +122,7 @@
126 122 aDescriptor directMappingFor: #id.
127 123 (aDescriptor newMapping: DirectMapping)
128 124 from: #primaryMuscleGroupId
129 Removed: to: (table fieldNamed: 'primaryMuscleGroupId').
125 Added: to: ((self tableNamed:'MUSCLEGROUP') fieldNamed: 'id').
130 126 (aDescriptor newMapping: DirectMapping)
131 127 from: #latinName
132 128 to: (table fieldNamed: 'latinName').
@@ -142,7 +138,7 @@
142 138 MFTDescriptorSystem >> descriptorForMFTMuscleGroup: aDescriptor [
143 139
144 140 | table |
145 Removed: table := self tableNamed: 'MUSCLE_GROUP'.
141 Added: table := self tableNamed: 'MUSCLEGROUP'.
146 142 aDescriptor table: table.
147 143 aDescriptor directMappingFor: #id.
148 144 aDescriptor directMappingFor: #englishName.
@@ -154,17 +150,14 @@
154 150 MFTDescriptorSystem >> descriptorForMFTSet: aDescriptor [
155 151
156 152 | table |
157 Removed: table := self tableNamed: 'WORKOUT'.
153 Added: table := self tableNamed: 'SET'.
158 154 aDescriptor table: table.
159 155 aDescriptor directMappingFor: #id.
160 156 (aDescriptor newMapping: DirectMapping)
161 157 from: #exerciseId
162 158 to: (table fieldNamed: 'Id').
163 159 aDescriptor directMappingFor: #number.
164 Removed: aDescriptor directMappingFor: #groupId.
165 Removed: (aDescriptor newMapping: DirectMapping)
166 Removed: from: #groupId
167 Removed: to: (table fieldNamed: 'Id').
160 Added: aDescriptor directMappingFor: #group.
168 161 aDescriptor directMappingFor: #reps.
169 162 aDescriptor directMappingFor: #load.
170 163 aDescriptor directMappingFor: #rpe.
@@ -175,12 +168,10 @@
175 168 MFTDescriptorSystem >> descriptorForMFTWeight: aDescriptor [
176 169
177 170 | table |
178 Removed: table := self tableNamed: 'WORKOUT'.
171 Added: table := self tableNamed: 'WEIGHT'.
179 172 aDescriptor table: table.
180 173 aDescriptor directMappingFor: #id.
181 Removed: (aDescriptor newMapping: DirectMapping)
182 Removed: from: #userId
183 Removed: to: (table fieldNamed: 'userId').
174 Added: (aDescriptor newMapping: OneToOneMapping) attributeName: #userId.
184 175 aDescriptor directMappingFor: #date.
185 176 aDescriptor directMappingFor: #kilograms
186 177 ]
@@ -192,41 +183,45 @@
192 183 table := self tableNamed: 'WORKOUT'.
193 184 aDescriptor table: table.
194 185 aDescriptor directMappingFor: #id.
195 Removed: (aDescriptor newMapping: DirectMapping)
196 Removed: from: #userId
197 Removed: to: (table fieldNamed: 'userId').
186 Added: (aDescriptor newMapping: OneToOneMapping) attributeName: #user.
198 187 aDescriptor directMappingFor: #date.
199 Removed: (aDescriptor newMapping: DirectMapping)
200 Removed: from: #primaryMuscleGroupId
201 Removed: to: (table fieldNamed: 'primaryMuscleGroupId').
202 Removed: (aDescriptor newMapping: DirectMapping)
203 Removed: from: #secondaryMuscleGroupIds
204 Removed: to: (table fieldNamed: 'secondaryMuscleGroupId').
205 Removed: aDescriptor directMappingFor: #restAfter
188 Added: (aDescriptor newMapping: OneToOneMapping) attributeName:
189 Added: #primaryMuscleGroup.
190 Added:
191 Added: aDescriptor newMapping: ManyToManyMapping
206 192 ]
207 193
208 194 { #category : 'tables' }
209 195 MFTDescriptorSystem >> tableForEXERCISE: aTable [
210 196
197 Added: | primaryMuscleField |
211 198 (aTable createFieldNamed: 'id' type: platform serial) bePrimaryKey.
212 199 aTable createFieldNamed: 'englishName' type: (platform varChar: 100).
213 200 aTable createFieldNamed: 'frenchName' type: (platform varChar: 100).
201 Added: primaryMuscleField := aTable
202 Added: createFieldNamed: 'primaryMuscleId'
203 Added: type: platform integer.
204 Added:
214 205 aTable
215 Removed: createFieldNamed: 'primaryMuscle'
216 Removed: type: (platform varchar: 100)
206 Added: addForeignKeyFrom: primaryMuscleField
207 Added: to: ((self tableNamed: 'MUSCLE') fieldNamed: 'id')
217 208 ]
218 209
219 210 { #category : 'tables' }
220 211 MFTDescriptorSystem >> tableForMUSCLE: aTable [
221 212
213 Added: | muscleGroupField |
222 214 (aTable createFieldNamed: 'id' type: platform serial) bePrimaryKey.
223 215 aTable createFieldNamed: 'latinName' type: (platform varChar: 100).
224 216 aTable createFieldNamed: 'englishName' type: (platform varChar: 100).
225 Removed: aTable createFieldNamed: 'englishName' type: (platform varChar: 100).
217 Added: muscleGroupField := aTable
218 Added: createFieldNamed: 'muscleGroupId'
219 Added: type: platform integer.
220 Added: aTable createFieldNamed: 'function' type: (platform varChar: 100).
221 Added:
226 222 aTable
227 Removed: createFieldNamed: 'primaryMuscleGroupId'
228 Removed: type: (platform foreignKey: MFTMuscleGroup).
229 Removed: aTable createFieldNamed: 'function' type: (platform varChar: 100)
223 Added: addForeignKeyFrom: muscleGroupField
224 Added: to: ((self tableNamed: 'MUSCLEGROUP') fieldNamed: 'id')
230 225 ]
231 226
232 227 { #category : 'tables' }
@@ -236,27 +231,33 @@
236 231 aTable
237 232 createFieldNamed: 'englishName' type: (platform varChar: 100);
238 233 createFieldNamed: 'frenchName' type: (platform varChar: 100);
239 Removed: createFieldNamed: 'function' type: (platform varChar: 100);
240 Removed: createFieldNamed: 'muscles'
241 Removed: type: (platform foreignKey: MFTMuscleGroup)
234 Added: createFieldNamed: 'function' type: (platform varChar: 100)
242 235 ]
243 236
244 237 { #category : 'tables' }
245 238 MFTDescriptorSystem >> tableForSET: aTable [
246 239
240 Added: | workoutField exerciseField |
247 241 (aTable createFieldNamed: 'id' type: platform serial) bePrimaryKey.
248 Removed: aTable
249 Removed: createFieldNamed: 'workoutId'
250 Removed: type: (platform foreignKey: #Workout).
251 Removed: aTable
252 Removed: createFieldNamed: 'exerciseId'
253 Removed: type: (platform foreignKey: #Exercise).
242 Added: workoutField := aTable
243 Added: createFieldNamed: 'workoutId'
244 Added: type: platform integer.
245 Added: exerciseField := aTable
246 Added: createFieldNamed: 'exerciseId'
247 Added: type: platform integer.
248 Added: aTable createFieldNamed: 'group' type: platform integer.
254 249 aTable createFieldNamed: 'number' type: platform integer.
255 Removed: aTable createFieldNamed: 'groupId' type: platform integer.
256 250 aTable createFieldNamed: 'reps' type: platform integer.
257 251 aTable createFieldNamed: 'load' type: platform integer.
258 252 aTable createFieldNamed: 'rpe' type: platform integer.
259 Removed: aTable createFieldNamed: 'restAfter' type: platform float4
253 Added: aTable createFieldNamed: 'restAfter' type: platform float4.
254 Added:
255 Added: aTable
256 Added: addForeignKeyFrom: workoutField
257 Added: to: ((self tableNamed: 'WORKOUT') fieldNamed: 'id').
258 Added: aTable
259 Added: addForeignKeyFrom: exerciseField
260 Added: to: ((self tableNamed: 'EXERCISE') fieldNamed: 'id')
260 261 ]
261 262
262 263 { #category : 'tables' }
@@ -270,35 +271,20 @@
270 271 createFieldNamed: 'realLastName' type: (platform varChar: 100);
271 272 createFieldNamed: 'dateOfBirth' type: platform date;
272 273 createFieldNamed: 'isLoggedIn' type: platform boolean;
273 Removed: createFieldNamed: 'lastLoginDateAndTime' type: platform date;
274 Removed: createFieldNamed: 'accountRegisterDateAndTime' type: platform date
274 Added: createFieldNamed: 'lastLoginDateTime' type: platform date;
275 Added: createFieldNamed: 'accountRegisterDateTime' type: platform date
275 276 ]
276 277
277 278 { #category : 'tables' }
278 279 MFTDescriptorSystem >> tableForWEIGHT: aTable [
279 280
281 Added: | userField |
280 282 (aTable createFieldNamed: 'id' type: platform serial) bePrimaryKey.
281 Removed: aTable
282 Removed: createFieldNamed: 'userId'
283 Removed: type: (platform foreignKey: MFTUser).
283 Added: userField := aTable createFieldNamed: 'userId' type: platform integer.
284 284 aTable createFieldNamed: 'date' type: platform date.
285 Removed: aTable createFieldNamed: 'kilograms' type: platform integer
286 Removed: ]
285 Added: aTable createFieldNamed: 'kilograms' type: platform integer.
287 286
288 Removed: { #category : 'tables' }
289 Removed: MFTDescriptorSystem >> tableForWEIGHT_ON_USER: aTable [
290 Removed:
291 Removed: | weightField userField |
292 Removed: weightField := aTable
293 Removed: createFieldNamed: 'workoutId'
294 Removed: type: platform integer.
295 Removed: userField := aTable createFieldNamed: 'userId' type: platform integer.
296 Removed: weightField bePrimaryKey.
297 Removed: userField bePrimaryKey.
298 287 aTable
299 Removed: addForeignKeyFrom: weightField
300 Removed: to: ((self tableNamed: 'WEIGHT') fieldNamed: 'id').
301 Removed: aTable
302 288 addForeignKeyFrom: userField
303 289 to: ((self tableNamed: 'USER') fieldNamed: 'id')
304 290 ]
@@ -306,35 +292,33 @@
306 292 { #category : 'tables' }
307 293 MFTDescriptorSystem >> tableForWORKOUT: aTable [
308 294
295 Added: | userField |
309 296 (aTable createFieldNamed: 'id' type: platform serial) bePrimaryKey.
310 Removed: aTable
311 Removed: createFieldNamed: 'userId'
312 Removed: type: (platform foreignKey: MFTUser).
297 Added: userField := aTable createFieldNamed: 'userId' type: platform integer.
313 298 aTable createFieldNamed: 'date' type: platform date.
314 299 aTable
315 300 createFieldNamed: 'primaryMuscleGroupId'
316 301 type: (platform varChar: 100).
302 Added:
317 303 aTable
318 Removed: createFieldNamed: 'sencondaryMuscleGroupIds'
319 Removed: type: (platform varChar: 100).
320 Removed: aTable createFieldNamed: 'setGroups' type: (platform varChar: 100).
321 Removed: aTable createFieldNamed: 'rpe' type: (platform varChar: 100)
304 Added: addForeignKeyFrom: userField
305 Added: to: ((self tableNamed: 'USER') fieldNamed: 'id')
322 306 ]
323 307
324 Removed: { #category : 'tables' }
325 Removed: MFTDescriptorSystem >> tableForWORKOUT_ON_USER: aTable [
308 Added: { #category : 'as yet unclassified' }
309 Added: MFTDescriptorSystem >> tableForWORKOUT_MUSCLEGROUP: aTable [
326 310
327 Removed: | workoutField userField |
328 Removed: workoutField := aTable
329 Removed: createFieldNamed: 'workoutId'
330 Removed: type: platform integer.
331 Removed: userField := aTable createFieldNamed: 'userId' type: platform integer.
332 Removed: workoutField bePrimaryKey.
333 Removed: userField bePrimaryKey.
311 Added: | workoutField mgField |
312 Added: (aTable createFieldNamed: 'workoutId' type: platform integer)
313 Added: bePrimaryKey.
314 Added: workoutField := aTable fieldNamed: 'workoutId'.
315 Added: mgField := aTable
316 Added: createFieldNamed: 'muscleGroupId'
317 Added: type: platform integer.
334 318 aTable
335 319 addForeignKeyFrom: workoutField
336 320 to: ((self tableNamed: 'WORKOUT') fieldNamed: 'id').
337 321 aTable
338 Removed: addForeignKeyFrom: userField
339 Removed: to: ((self tableNamed: 'USER') fieldNamed: 'id')
322 Added: addForeignKeyFrom: mgField
323 Added: to: ((self tableNamed: 'MUSCLEGROUP') fieldNamed: 'id')
340 324 ]