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

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

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

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

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

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

Loading…
Cancel
Save