Skip to content

Commit b599c24

Browse files
authored
Remove workout template visibility (#1159)
* feat(migrations): add migration to remove visibility from workout template * feat(backend): remove refs to remove workout template column * chore(frontend): adapt to new gql schema
1 parent 99a045c commit b599c24

File tree

11 files changed

+40
-40
lines changed

11 files changed

+40
-40
lines changed

apps/frontend/app/routes/_dashboard.fitness.$entity.list.tsx

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import {
3131
IconChevronDown,
3232
IconChevronUp,
3333
IconClock,
34-
IconLock,
3534
IconPlus,
3635
IconRoad,
3736
IconTrophy,
@@ -229,11 +228,11 @@ const DisplayFitnessEntity = (props: { entityId: string; index: number }) => {
229228
workoutTemplateId: props.entityId,
230229
})
231230
.then(({ userWorkoutTemplateDetails }) => ({
231+
detail: "",
232232
name: userWorkoutTemplateDetails.details.name,
233233
summary: userWorkoutTemplateDetails.details.summary,
234234
timestamp: userWorkoutTemplateDetails.details.createdOn,
235235
information: userWorkoutTemplateDetails.details.information,
236-
detail: changeCase(userWorkoutTemplateDetails.details.visibility),
237236
})),
238237
)
239238
.exhaustive(),
@@ -278,13 +277,12 @@ const DisplayFitnessEntity = (props: { entityId: string; index: number }) => {
278277
</Text>
279278
</Group>
280279
<Group mt="xs">
281-
<DisplayStat
282-
data={entityInformation.detail}
283-
icon={match(loaderData.entity)
284-
.with(FitnessEntity.Workouts, () => <IconClock size={16} />)
285-
.with(FitnessEntity.Templates, () => <IconLock size={16} />)
286-
.exhaustive()}
287-
/>
280+
{entityInformation.detail ? (
281+
<DisplayStat
282+
icon={<IconClock size={16} />}
283+
data={entityInformation.detail}
284+
/>
285+
) : null}
288286
{entityInformation.summary.total ? (
289287
<>
290288
{personalBestsAchieved !== 0 ? (

crates/migrations/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ mod m20241220_changes_for_issue_49;
5959
mod m20241224_changes_for_issue_1139;
6060
mod m20241227_changes_for_issue_1157;
6161
mod m20241228_changes_for_issue_1130;
62+
mod m20241229_changes_for_issue_1155;
6263

6364
pub use m20230410_create_metadata::Metadata as AliasedMetadata;
6465
pub use m20230413_create_person::Person as AliasedPerson;
@@ -139,6 +140,7 @@ impl MigratorTrait for Migrator {
139140
Box::new(m20241224_changes_for_issue_1139::Migration),
140141
Box::new(m20241227_changes_for_issue_1157::Migration),
141142
Box::new(m20241228_changes_for_issue_1130::Migration),
143+
Box::new(m20241229_changes_for_issue_1155::Migration),
142144
]
143145
}
144146
}

crates/migrations/src/m20230818_create_workout_template.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
// FIXME: Rename this to m20230506_create_workout_template in the next major release
2-
use enum_models::Visibility;
32
use sea_orm_migration::prelude::*;
43

5-
use super::m20230417_create_user::User;
4+
use crate::m20230417_create_user::User;
65

76
#[derive(DeriveMigrationName)]
87
pub struct Migration;
@@ -15,7 +14,6 @@ pub enum WorkoutTemplate {
1514
CreatedOn,
1615
Name,
1716
Summary,
18-
Visibility,
1917
Information,
2018
}
2119

@@ -32,12 +30,6 @@ impl MigrationTrait for Migration {
3230
.text()
3331
.not_null(),
3432
)
35-
.col(
36-
ColumnDef::new(WorkoutTemplate::Visibility)
37-
.text()
38-
.not_null()
39-
.default(Visibility::Private),
40-
)
4133
.col(
4234
ColumnDef::new(WorkoutTemplate::Summary)
4335
.json_binary()
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
use sea_orm_migration::prelude::*;
2+
3+
#[derive(DeriveMigrationName)]
4+
pub struct Migration;
5+
6+
#[async_trait::async_trait]
7+
impl MigrationTrait for Migration {
8+
async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
9+
let db = manager.get_connection();
10+
if manager.has_column("workout_template", "visibility").await? {
11+
db.execute_unprepared(r#"ALTER TABLE "workout_template" DROP COLUMN "visibility""#)
12+
.await?;
13+
}
14+
Ok(())
15+
}
16+
17+
async fn down(&self, _manager: &SchemaManager) -> Result<(), DbErr> {
18+
Ok(())
19+
}
20+
}

crates/models/database/src/workout_template.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.15
22
33
use async_graphql::SimpleObject;
4-
use enum_models::Visibility;
54
use fitness_models::{WorkoutInformation, WorkoutSummary};
65
use schematic::Schematic;
76
use sea_orm::entity::prelude::*;
@@ -17,11 +16,10 @@ pub struct Model {
1716
#[sea_orm(primary_key)]
1817
pub id: String,
1918
pub name: String,
20-
pub visibility: Visibility,
21-
pub created_on: DateTimeUtc,
2219
#[graphql(skip)]
2320
#[serde(skip)]
2421
pub user_id: String,
22+
pub created_on: DateTimeUtc,
2523
pub summary: WorkoutSummary,
2624
pub information: WorkoutInformation,
2725
}

crates/services/fitness/src/lib.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use dependent_utils::{
2525
create_custom_exercise, create_or_update_user_workout, create_user_measurement,
2626
db_workout_to_workout_input, get_focused_workout_summary,
2727
};
28-
use enum_models::{EntityLot, ExerciseLot, ExerciseSource, Visibility};
28+
use enum_models::{EntityLot, ExerciseLot, ExerciseSource};
2929
use fitness_models::{
3030
ExerciseAttributes, ExerciseCategory, ExerciseListItem, ExerciseSortBy, ExercisesListInput,
3131
GithubExercise, GithubExerciseAttributes, ProcessedExercise, UpdateUserExerciseSettings,
@@ -137,15 +137,14 @@ impl FitnessService {
137137
let processed_exercises = information.exercises.clone();
138138
summary.focused = get_focused_workout_summary(&processed_exercises, &self.0).await;
139139
let template = workout_template::ActiveModel {
140-
id: match input.update_workout_template_id {
141-
Some(id) => ActiveValue::Set(id),
142-
None => ActiveValue::Set(format!("wktpl_{}", nanoid!(12))),
143-
},
144140
name: ActiveValue::Set(input.name),
145141
user_id: ActiveValue::Set(user_id),
146142
summary: ActiveValue::Set(summary),
147143
information: ActiveValue::Set(information),
148-
visibility: ActiveValue::Set(Visibility::Private),
144+
id: match input.update_workout_template_id {
145+
Some(id) => ActiveValue::Set(id),
146+
None => ActiveValue::Set(format!("wktpl_{}", nanoid!(12))),
147+
},
149148
..Default::default()
150149
};
151150
let template = WorkoutTemplate::insert(template)
@@ -154,7 +153,6 @@ impl FitnessService {
154153
.update_columns([
155154
workout_template::Column::Name,
156155
workout_template::Column::Summary,
157-
workout_template::Column::Visibility,
158156
workout_template::Column::Information,
159157
])
160158
.to_owned(),

docs/includes/export-schema.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -396,11 +396,6 @@ export interface WorkoutTemplate {
396396
information: WorkoutInformation;
397397
name: string;
398398
summary: WorkoutSummary;
399-
/**
400-
* @default 'public'
401-
* @type {'public' | 'private'}
402-
*/
403-
visibility: Visibility;
404399
}
405400

406401
export interface ImportOrExportWorkoutTemplateItem {

libs/generated/src/graphql/backend/gql.ts

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

libs/generated/src/graphql/backend/graphql.ts

Lines changed: 2 additions & 3 deletions
Large diffs are not rendered by default.

libs/generated/src/graphql/backend/types.generated.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3142,5 +3142,4 @@ export type WorkoutTemplate = {
31423142
information: WorkoutInformation;
31433143
name: Scalars['String']['output'];
31443144
summary: WorkoutSummary;
3145-
visibility: Visibility;
31463145
};

0 commit comments

Comments
 (0)