Skip to content

Commit f5eb917

Browse files
authored
Merge pull request #6872 from msupply-foundation/add-filter-for-is-active-for-clinicians
6635 Add clinicians is_active filter
2 parents 0f5d879 + 3a8e446 commit f5eb917

File tree

4 files changed

+19
-2
lines changed

4 files changed

+19
-2
lines changed

client/packages/common/src/types/schema.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1005,6 +1005,7 @@ export type ClinicianFilterInput = {
10051005
firstName?: InputMaybe<StringFilterInput>;
10061006
id?: InputMaybe<EqualFilterStringInput>;
10071007
initials?: InputMaybe<StringFilterInput>;
1008+
isActive?: InputMaybe<Scalars['Boolean']['input']>;
10081009
lastName?: InputMaybe<StringFilterInput>;
10091010
mobile?: InputMaybe<StringFilterInput>;
10101011
phone?: InputMaybe<StringFilterInput>;

client/packages/programs/src/api/api.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,10 @@ export const getClinicianQueries = (sdk: Sdk, storeId: string) => ({
357357
(sortBy?.key as ClinicianSortFieldInput) ??
358358
ClinicianSortFieldInput.LastName,
359359
desc: sortBy?.isDesc,
360-
filter: filterBy,
360+
filter: {
361+
...filterBy,
362+
isActive: true,
363+
}
361364
});
362365

363366
if (result.clinicians.__typename === 'ClinicianConnector') {

server/graphql/clinician/src/query.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ pub struct ClinicianSortInput {
4141
#[derive(InputObject, Clone)]
4242
pub struct ClinicianFilterInput {
4343
pub id: Option<EqualFilterStringInput>,
44-
4544
pub code: Option<StringFilterInput>,
4645
pub first_name: Option<StringFilterInput>,
4746
pub last_name: Option<StringFilterInput>,
@@ -51,6 +50,7 @@ pub struct ClinicianFilterInput {
5150
pub phone: Option<StringFilterInput>,
5251
pub mobile: Option<StringFilterInput>,
5352
pub email: Option<StringFilterInput>,
53+
pub is_active: Option<bool>,
5454
}
5555

5656
#[derive(SimpleObject)]
@@ -113,6 +113,7 @@ impl ClinicianFilterInput {
113113
phone,
114114
mobile,
115115
email,
116+
is_active,
116117
} = self;
117118

118119
ClinicianFilter {
@@ -126,6 +127,7 @@ impl ClinicianFilterInput {
126127
phone: phone.map(StringFilter::from),
127128
mobile: mobile.map(StringFilter::from),
128129
email: email.map(StringFilter::from),
130+
is_active,
129131
}
130132
}
131133
}

server/repository/src/db_diesel/clinician.rs

+11
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ pub struct ClinicianFilter {
2323
pub phone: Option<StringFilter>,
2424
pub mobile: Option<StringFilter>,
2525
pub email: Option<StringFilter>,
26+
pub is_active: Option<bool>,
2627
}
2728

2829
#[derive(PartialEq, Debug)]
@@ -149,6 +150,7 @@ fn create_filtered_query(store_id: String, filter: Option<ClinicianFilter>) -> B
149150
phone,
150151
mobile,
151152
email,
153+
is_active,
152154
} = f;
153155

154156
apply_equal_filter!(query, id, clinician::id);
@@ -161,6 +163,10 @@ fn create_filtered_query(store_id: String, filter: Option<ClinicianFilter>) -> B
161163
apply_string_filter!(query, phone, clinician::phone);
162164
apply_string_filter!(query, mobile, clinician::mobile);
163165
apply_string_filter!(query, email, clinician::email);
166+
167+
if let Some(is_active) = is_active {
168+
query = query.filter(clinician::is_active.eq(is_active))
169+
}
164170
};
165171

166172
// Restrict results to clinicians belonging to the store as specified in the
@@ -228,6 +234,11 @@ impl ClinicianFilter {
228234
self.email = Some(filter);
229235
self
230236
}
237+
238+
pub fn is_active(mut self, filter: bool) -> Self {
239+
self.is_active = Some(filter);
240+
self
241+
}
231242
}
232243

233244
#[cfg(test)]

0 commit comments

Comments
 (0)