Skip to content

Instantly share code, notes, and snippets.

@nguyenvinhlinh
Created June 28, 2016 10:27
Show Gist options
  • Save nguyenvinhlinh/6aa0ea4e3e664a5834330dc92ae9614f to your computer and use it in GitHub Desktop.
Save nguyenvinhlinh/6aa0ea4e3e664a5834330dc92ae9614f to your computer and use it in GitHub Desktop.
def getDataCampusSchedule(conn, %{"f" => %{"campus_id" => campus_id, "semester_id" => semester_id}}) do
query = from csetting in ClassSetting ,
join: ctime in ClassTime, on: ctime.id == csetting.class_time_id,
join: class in Class, on: class.id == csetting.class_id,
join: teacher in User,on: teacher.id == csetting.teacher_id,
join: subject in Subject, on: subject.id == csetting.subject_id,
join: campus in Campus, on: campus.id == class.campus_id,
where: class.semester_id == ^String.to_integer(semester_id),
order_by: [ctime.id, csetting.date],
select: %{"class_time_id" => ctime.id,
"start_time" => ctime.start_time,
"end_time" => ctime.end_time,
"date" => csetting.date,
"class_id" => csetting.class_id,
"class_name" => class.name,
"teacher_id" => teacher.id,
"teacher_first_name" => teacher.first_name,
"teacher_last_name" => teacher.last_name,
"subject_name" => subject.name,
"campus_name" => campus.name,
"campus_id" => campus.id}
if campus_id != "" do
query = from c in query, where: c.campus_id == ^String.to_integer(campus_id)
end
result = Repo.all(query)
json(conn, %{success: true,
data: result})
end
@rubikill
Copy link

rubikill commented Jun 28, 2016

def getDataCampusSchedule(conn, %{"f" => %{"campus_id" => campus_id, "semester_id" => semester_id}}) do
query = if campus_id != "" do
from c in query, where: c.campus_id == ^String.to_integer(campus_id)
else
from csetting in ClassSetting ,
join: ctime in ClassTime, on: ctime.id == csetting.class_time_id,
join: class in Class, on: class.id == csetting.class_id,
join: teacher in User,on: teacher.id == csetting.teacher_id,
join: subject in Subject, on: subject.id == csetting.subject_id,
join: campus in Campus, on: campus.id == class.campus_id,
where: class.semester_id == ^String.to_integer(semester_id),
order_by: [ctime.id, csetting.date],
select: %{"class_time_id" => ctime.id,
"start_time" => ctime.start_time,
"end_time" => ctime.end_time,
"date" => csetting.date,
"class_id" => csetting.class_id,
"class_name" => class.name,
"teacher_id" => teacher.id,
"teacher_first_name" => teacher.first_name,
"teacher_last_name" => teacher.last_name,
"subject_name" => subject.name,
"campus_name" => campus.name,
"campus_id" => campus.id}
end
result = Repo.all(query)
json(conn, %{success: true,
data: result})
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment