Beschränke Anfragen nur auf nötige Spalten

master
Niko Diamadis 4 years ago
parent b868a3b4e1
commit 91cfc7f6dd
Signed by: niko
GPG Key ID: BE53B0B17B1B142E

@ -29,6 +29,9 @@ object ParseController {
) {
val query = getQuery<Member>(false)
query.whereEqualTo(Member.COLUMN_NAME, name)
query.selectKeys(listOf(
Member.COLUMN_ADMIN
))
query.getFirstInBackground { member, e ->
if (e == null) {
action(member.objectId, member.admin, e)
@ -41,6 +44,9 @@ object ParseController {
internal fun fetchYears(action: (entries: List<Year>, e: ParseException?) -> Unit) {
val query = getQuery<Year>()
query.orderByDescending(Year.COLUMN_NAME)
query.selectKeys(listOf(
Year.COLUMN_NAME
))
query.findInBackground { years, e ->
if (e == null) {
action(years, null)
@ -53,6 +59,12 @@ object ParseController {
action: (mission: Mission?, e: ParseException?) -> Unit
) {
val query = getQuery<Mission>()
query.selectKeys(listOf(
Mission.COLUMN_DATE,
Mission.COLUMN_DURATION,
Mission.COLUMN_LOCATION,
Mission.COLUMN_NAME
))
query.getInBackground(objectId) { mission, e ->
if (e == null) {
action(mission, null)
@ -67,8 +79,14 @@ object ParseController {
action: (missions: List<Mission>, e: ParseException?) -> Unit
) {
val query = getQuery<Mission>()
query.orderByDescending(Mission.COLUMN_DATE)
query.whereEqualTo(Mission.COLUMN_YEAR, Year.emptyObject(year))
query.orderByDescending(Mission.COLUMN_DATE)
query.selectKeys(listOf(
Mission.COLUMN_DATE,
Mission.COLUMN_DURATION,
Mission.COLUMN_LOCATION,
Mission.COLUMN_NAME
))
query.findInBackground { missions, e ->
if (e == null) {
action(missions, null)
@ -85,6 +103,16 @@ object ParseController {
) {
val query = getQuery<Participation>(false)
query.whereEqualTo(Participation.COLUMN_IN, Mission.emptyObject(missionId))
val keys = if (includeMember) {
listOf(
Participation.COLUMN_BY,
Participation.COLUMN_DURATION,
Participation.COLUMN_TIME
)
} else {
listOf()
}
query.selectKeys(keys)
if (includeMember) query.include(Participation.COLUMN_BY)
query.findInBackground { participations, e ->
if (e == null) {
@ -97,6 +125,7 @@ object ParseController {
}
internal fun fetchMembers(
includeInformation: Boolean,
action: (
members: List<Member>,
memberNames: List<String>,
@ -106,6 +135,16 @@ object ParseController {
val query = getQuery<Member>(false)
query.whereEqualTo(Member.COLUMN_RETIRED, false)
query.orderByAscending(Member.COLUMN_NAME)
val keys = if (includeInformation) {
listOf(
Member.COLUMN_ADMIN,
Member.COLUMN_NAME,
Member.COLUMN_RETIRED
)
} else {
listOf(Member.COLUMN_NAME)
}
query.selectKeys(keys)
query.findInBackground { members, e ->
if (e == null) {
val names = mutableListOf<String>()

@ -27,9 +27,9 @@ internal class Member : ParseObject() {
companion object {
internal const val CLASS_NAME = "Techniker"
private const val COLUMN_ADMIN = "admin"
internal const val COLUMN_RETIRED = "entlassen"
internal const val COLUMN_ADMIN = "admin"
internal const val COLUMN_NAME = "name"
internal const val COLUMN_RETIRED = "entlassen"
internal fun emptyObject(objectId: String): Member {
return createWithoutData(Member::class.java, objectId)

@ -53,9 +53,9 @@ internal class Mission : ParseObject() {
internal const val CLASS_NAME = "Einsatz"
internal const val COLUMN_DATE = "datum"
private const val COLUMN_DURATION = "dauer"
private const val COLUMN_LOCATION = "ort"
private const val COLUMN_NAME = "name"
internal const val COLUMN_DURATION = "dauer"
internal const val COLUMN_LOCATION = "ort"
internal const val COLUMN_NAME = "name"
internal const val COLUMN_YEAR = "jahr"
internal fun emptyObject(objectId: String): Mission {

@ -33,9 +33,9 @@ internal class Participation : ParseObject() {
internal const val CLASS_NAME = "Teilnahme"
internal const val COLUMN_BY = "von"
private const val COLUMN_DURATION = "dauer"
internal const val COLUMN_DURATION = "dauer"
internal const val COLUMN_IN = "an"
private const val COLUMN_TIME = "uhrzeit"
internal const val COLUMN_TIME = "uhrzeit"
internal fun emptyObject(objectId: String): Participation {
return createWithoutData(Participation::class.java, objectId)

@ -88,7 +88,7 @@ class ManageMembersFragment : Fragment() {
memberNames
)
ParseController.fetchMembers { members, memberNames, e ->
ParseController.fetchMembers(true) { members, memberNames, e ->
if (e == null) {
val adapter = ArrayAdapter(
myContext,

@ -323,7 +323,7 @@ class MissionFragment : Fragment() {
}
private fun otherAdd() {
ParseController.fetchMembers { members, memberNames, e ->
ParseController.fetchMembers(false) { members, memberNames, e ->
if (e == null) {
val currentSelection = BooleanArray(members.size)
memberNames.forEachIndexed { index, name ->

Loading…
Cancel
Save