Z.Flat (Portico/Z v0.1.0)
Context for "flattened" data tables.
A "flattened" table is one that has been de-normalized (related tables have been pulled into columns). This is typically done for performance or analytics.
NOTE: These tables should be considered "read-only" for general use. These CRUD functions exist only to synchronize these tables from elsewhere in the EXPLO system.
Link to this section Summary
Functions
Returns an %Ecto.Changeset{}
for tracking bus route changes.
Returns an %Ecto.Changeset{}
for tracking contact changes.
Returns an %Ecto.Changeset{}
for tracking course changes.
Returns an %Ecto.Changeset{}
for tracking credit provider changes.
Returns an %Ecto.Changeset{}
for tracking enrollment changes.
Returns an %Ecto.Changeset{}
for tracking session changes.
Creates a bus route.
Creates a contact.
Creates a course.
Creates a credit provider.
Creates an enrollment.
Creates/updates a bus route.
Creates/updates a contact.
Creates/updates a course.
Creates/updates a credit provider.
Creates/updates an enrollment.
Creates/updates a session.
Creates a session.
Deletes a bus route.
Deletes a contact.
Deletes a course.
Deletes a credit provider.
Delete all empty contacts from the database.
Deletes a enrollment
Deletes a session
Gets a single bus route, by portico_id
.
Gets a single bus route, by portico_id
.
Gets a single contact, by portico_contact_id
.
Gets a single contact, by portico_contact_id
.
Gets a single course, by portico_course_id
.
Gets a single course, by portico_course_id
.
Gets a single credit provider, by portico_id
.
Gets a single credit provider, by portico_id
.
Gets a single enrollment by sis_enrollment_id
Gets a single enrollment by sis_enrollment_id
Gets a single session by portico_session_id
Gets a single session by portico_session_id
Returns the list of bus routes.
Returns the list of contacts.
Returns the list of courses.
Returns the list of credit providers.
Returns the list of enrollments
Returns the list of sessions
Generates a query of ZSchemas.Flat.Course
records that have active_session_ids
which overlap what is passed to this function
Generates a query of ZSchemas.Flat.Course
records where min_grade
and max_grade
complement a given grade
.
Generates a query of ZSchemas.Flat.Course
records where language_level
is <= the passed level (as an integer)
Updates a bus route.
Updates a contact.
Updates a course.
Updates a credit provider.
Updates an enrollment
Updates a session
Link to this section Functions
change_bus_route(bus_route, attrs \\ %{})
Returns an %Ecto.Changeset{}
for tracking bus route changes.
Examples
iex> change_bus_route(bus_route)
%Ecto.Changeset{data: %BusRoute{}}
change_contact(contact, attrs \\ %{})
Returns an %Ecto.Changeset{}
for tracking contact changes.
Examples
iex> change_contact(contact)
%Ecto.Changeset{data: %Contact{}}
change_course(course, attrs \\ %{})
Returns an %Ecto.Changeset{}
for tracking course changes.
Examples
iex> change_course(course)
%Ecto.Changeset{data: %Course{}}
change_credit_provider(credit_provider, attrs \\ %{})
Returns an %Ecto.Changeset{}
for tracking credit provider changes.
Examples
iex> change_credit_provider(credit_provider)
%Ecto.Changeset{data: %CreditProvider{}}
change_enrollment(enrollment, attrs \\ %{})
Returns an %Ecto.Changeset{}
for tracking enrollment changes.
Examples
iex> change_enrollment(enrollment)
%Ecto.Changeset{data: %Enrollment{}}
change_session(session, attrs \\ %{})
Returns an %Ecto.Changeset{}
for tracking session changes.
Examples
iex> change_session(session)
%Ecto.Changeset{data: %Session{}}
create_bus_route(attrs \\ %{})
Creates a bus route.
Examples
iex> create_bus_route(%{field: value})
{:ok, %BusRoute{}}
iex> create_bus_route(%{field: bad_value})
{:error, %Ecto.Changeset{}}
create_contact(attrs \\ %{})
Creates a contact.
Examples
iex> create_contact(%{field: value})
{:ok, %Contact{}}
iex> create_contact(%{field: bad_value})
{:error, %Ecto.Changeset{}}
create_course(attrs \\ %{})
Creates a course.
Examples
iex> create_course(%{field: value})
{:ok, %Course{}}
iex> create_course(%{field: bad_value})
{:error, %Ecto.Changeset{}}
create_credit_provider(attrs \\ %{})
Creates a credit provider.
Examples
iex> create_credit_provider(%{field: value})
{:ok, %CreditProvider{}}
iex> create_credit_provider(%{field: bad_value})
{:error, %Ecto.Changeset{}}
create_enrollment(attrs \\ %{})
Creates an enrollment.
Examples
iex> create_enrollment(%{field: value})
{:ok, %Enrollment{}}
iex> create_enrollment(%{field: bad_value})
{:error, %Ecto.Changeset{}}
create_or_update_bus_route(attrs \\ %{})
Creates/updates a bus route.
Examples
iex> create_or_update_bus_route(%{field: value})
{:ok, %BusRoute{}}
iex> create_or_update_bus_route(%{field: bad_value})
{:error, %Ecto.Changeset{}}
create_or_update_contact(attrs \\ %{})
Creates/updates a contact.
Examples
iex> create_or_update_contact(%{field: value})
{:ok, %Contact{}}
iex> create_or_update_contact(%{field: bad_value})
{:error, %Ecto.Changeset{}}
create_or_update_course(attrs \\ %{})
Creates/updates a course.
Examples
iex> create_or_update_course(%{field: value})
{:ok, %Course{}}
iex> create_or_update_course(%{field: bad_value})
{:error, %Ecto.Changeset{}}
create_or_update_credit_provider(attrs \\ %{})
Creates/updates a credit provider.
Examples
iex> create_or_update_credit_provider(%{field: value})
{:ok, %CreditProvider{}}
iex> create_or_update_credit_provider(%{field: bad_value})
{:error, %Ecto.Changeset{}}
create_or_update_enrollment(attrs \\ %{})
Creates/updates an enrollment.
Examples
iex> create_or_update_enrollment(%{field: value})
{:ok, %Enrollment{}}
iex> create_or_update_contact(%{field: bad_value})
{:error, %Ecto.Changeset{}}
create_or_update_session(attrs \\ %{})
Creates/updates a session.
Examples
iex> create_or_update_session(%{field: value})
{:ok, %Session{}}
iex> create_or_update_contact(%{field: bad_value})
{:error, %Ecto.Changeset{}}
create_session(attrs \\ %{})
Creates a session.
Examples
iex> create_session(%{field: value})
{:ok, %Session{}}
iex> create_session(%{field: bad_value})
{:error, %Ecto.Changeset{}}
delete_bus_route(bus_route)
Deletes a bus route.
Examples
iex> delete_bus_route(bus_route)
{:ok, %BusRoute{}}
iex> delete_bus_route(bus_route)
{:error, %Ecto.Changeset{}}
delete_contact(contact)
Deletes a contact.
Examples
iex> delete_contact(contact)
{:ok, %Contact{}}
iex> delete_contact(contact)
{:error, %Ecto.Changeset{}}
delete_course(course)
Deletes a course.
Examples
iex> delete_course(course)
{:ok, %Course{}}
iex> delete_course(course)
{:error, %Ecto.Changeset{}}
delete_credit_provider(credit_provider)
Deletes a credit provider.
Examples
iex> delete_credit_provider(credit_provider)
{:ok, %CreditProvider{}}
iex> delete_credit_provider(credit_provider)
{:error, %Ecto.Changeset{}}
delete_empty_contacts()
Delete all empty contacts from the database.
Empty contacts sometimes make it in because they're merged or deleted in Portico, which makes their cache record have an empty first/last name. We keep the cache record in Portico so we know what happened, but just pull them from the cache in Z so that they don't show up in searches etc.
delete_enrollment(enrollment)
Deletes a enrollment
Examples
iex> delete_enrollment(enrollment)
{:ok, %Enrollment{}}
iex> delete_enrollment(enrollment)
{:error, %Ecto.Changeset{}}
delete_session(session)
Deletes a session
Examples
iex> delete_session(session)
{:ok, %Session{}}
iex> delete_session(session)
{:error, %Ecto.Changeset{}}
get_bus_route(portico_id)
Gets a single bus route, by portico_id
.
Returns nil
if the BusRoute does not exist.
Examples
iex> get_bus_route("portico_id")
%BusRoute{}
iex> get_bus_route("bad_id")
nil
get_bus_route!(portico_id)
Gets a single bus route, by portico_id
.
Raises Ecto.NoResultsError
if the BusRoute
does not exist.
Examples
iex> get_bus_route!("portico_id")
%BusRoute{}
iex> get_bus_route!("bad_id")
** (Ecto.NoResultsError)
get_contact(portico_contact_id)
Gets a single contact, by portico_contact_id
.
Returns nil
if the Contact does not exist.
Examples
iex> get_contact("portico_contact_id")
%Contact{}
iex> get_contact("bad_id")
nil
get_contact!(portico_contact_id)
Gets a single contact, by portico_contact_id
.
Raises Ecto.NoResultsError
if the Contact
does not exist.
Examples
iex> get_contact!("portico_contact_id")
%Contact{}
iex> get_contact!("bad_id")
** (Ecto.NoResultsError)
get_course(portico_course_id)
Gets a single course, by portico_course_id
.
Returns nil
if the Course does not exist.
Examples
iex> get_course("portico_course_id")
%Course{}
iex> get_course("bad_id")
nil
get_course!(portico_course_id)
Gets a single course, by portico_course_id
.
Raises Ecto.NoResultsError
if the Course
does not exist.
Examples
iex> get_course!("portico_course_id")
%Course{}
iex> get_course!("bad_id")
** (Ecto.NoResultsError)
get_credit_provider(portico_id)
Gets a single credit provider, by portico_id
.
Returns nil
if the CreditProvider does not exist.
Examples
iex> get_credit_provider("portico_id")
%CreditProvider{}
iex> get_credit_provider("bad_id")
nil
get_credit_provider!(portico_id)
Gets a single credit provider, by portico_id
.
Raises Ecto.NoResultsError
if the CreditProvider
does not exist.
Examples
iex> get_credit_provider!("portico_id")
%CreditProvider{}
iex> get_credit_provider!("bad_id")
** (Ecto.NoResultsError)
get_enrollment(sis_enrollment_id)
Gets a single enrollment by sis_enrollment_id
Returns nil
if none are found
Examples
iex> get_enrollment("abc")
%Enrollment{}
iex> get_enrollment("123")
nil
get_enrollment!(sis_enrollment_id)
Gets a single enrollment by sis_enrollment_id
(Portico uses a compound key for this)
Raises Ecto.NoResultsError
if the Enrollment
does not exist.
Examples
iex> get_enrollment("abc")
%Enrollment{}
iex> get_enrollment("123")
** (Ecto.NoResultsError)
get_session(portico_session_id)
Gets a single session by portico_session_id
Returns nil
if none are found
Examples
iex> get_session("abc")
%Session{}
iex> get_session("123")
nil
get_session!(portico_session_id)
Gets a single session by portico_session_id
(Portico uses a compound key for this)
Raises Ecto.NoResultsError
if the Session
does not exist.
Examples
iex> get_session("abc")
%Session{}
iex> get_session("123")
** (Ecto.NoResultsError)
list_bus_routes()
Returns the list of bus routes.
Examples
iex> list_bus_routes()
[%BusRoute{}, ...]
list_contacts()
Returns the list of contacts.
Examples
iex> list_contacts()
[%Contact{}, ...]
list_courses()
Returns the list of courses.
Examples
iex> list_courses()
[%Course{}, ...]
list_credit_providers()
Returns the list of credit providers.
Examples
iex> list_credit_providers()
[%CreditProvider{}, ...]
list_enrollments()
Returns the list of enrollments
Examples
iex> list_enrollments()
[%Enrollment{}, ...]
list_sessions()
Returns the list of sessions
Examples
iex> list_sessions()
[%Session{}, ...]
query_courses_for_active_session_ids(active_session_ids, opts \\ [])
Generates a query of ZSchemas.Flat.Course
records that have active_session_ids
which overlap what is passed to this function
Returns an Ecto.Query
for re-use in other searches
Opts
This function takes the following opts
:
initial_query
- a previous query to chain. Defaults toZSchemas.Flat.Course
query_courses_for_grade(grade, opts \\ [])
Generates a query of ZSchemas.Flat.Course
records where min_grade
and max_grade
complement a given grade
.
Returns an Ecto.Query
for re-use in other searches
Opts
This function takes the following opts
:
initial_query
- a previous query to chain. Defaults toZSchemas.Flat.Course
query_courses_for_language_level(level, opts \\ [])
Generates a query of ZSchemas.Flat.Course
records where language_level
is <= the passed level (as an integer)
See sis_data::language_levels in Portico for the map of integers to fluency.
Returns an Ecto.Query
for re-use in other searches
Opts
This function takes the following opts
:
initial_query
- a previous query to chain. Defaults toZSchemas.Flat.Course
update_bus_route(bus_route, attrs)
Updates a bus route.
Examples
iex> update_bus_route(bus_route, %{field: new_value})
{:ok, %BusRoute{}}
iex> update_bus_route(bus_route, %{field: bad_value})
{:error, %Ecto.Changeset{}}
update_contact(contact, attrs)
Updates a contact.
Examples
iex> update_contact(contact, %{field: new_value})
{:ok, %Contact{}}
iex> update_contact(contact, %{field: bad_value})
{:error, %Ecto.Changeset{}}
update_course(course, attrs)
Updates a course.
Examples
iex> update_course(course, %{field: new_value})
{:ok, %Course{}}
iex> update_course(course, %{field: bad_value})
{:error, %Ecto.Changeset{}}
update_credit_provider(credit_provider, attrs)
Updates a credit provider.
Examples
iex> update_credit_provider(credit_provider, %{field: new_value})
{:ok, %CreditProvider{}}
iex> update_credit_provider(credit_provider, %{field: bad_value})
{:error, %Ecto.Changeset{}}
update_enrollment(enrollment, attrs)
Updates an enrollment
Examples
iex> update_enrollment(enrollment, %{field: new_value})
{:ok, %Enrollment{}}
iex> update_enrollment(enrollment, %{field: bad_value})
{:error, %Ecto.Changeset{}}
update_session(session, attrs)
Updates a session
Examples
iex> update_session(session, %{field: new_value})
{:ok, %Session{}}
iex> update_session(session, %{field: bad_value})
{:error, %Ecto.Changeset{}}