Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion SiriusProject/SiriusProject/Networking/Endpoint.swift
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ enum Endpoint {
case sendPushesToAll(url: String = Constants.pushesPath, url1: String = Constants.sendToAllPath, teamname: String, score: Int)
case sendTextPushesToAll(url: String = Constants.pushesPath, url1: String = Constants.sendToAllPath, text: String, title: String)

case deleteAllTeams(url: String = Constants.pushesPath)
case deleteAllTeams(url: String = Constants.teamsPath)

var request: URLRequest? {
guard let url = url else { return nil }
Expand Down
20 changes: 20 additions & 0 deletions SiriusProject/SiriusProject/View/SettingsView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,26 @@ struct SettingsView: View {
Text(": ") +
Text(isJudge ? LocalizedStringKey("judge") : LocalizedStringKey("participant"))

Button {
viewModel.deleteAllTeams()
} label: {
Text("deleteallteams")
.foregroundStyle(Color.white)
.padding()
.background(Color(.red))
.cornerRadius(20)
}
.alert("askdeleteallteams", isPresented: $viewModel.showAlert, actions: {
Button("delete", role: .destructive) {
viewModel.deleteTeams = true
}
Button("cancel", role: .cancel) {}
})

.alert("teamsdeleted", isPresented: $viewModel.teamsDeleted, actions: {
Button("Ok", role: .cancel) {}
})

Spacer()

Button("changename") {
Expand Down
19 changes: 19 additions & 0 deletions SiriusProject/SiriusProject/ViewModel/SettingsViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,14 @@ final class SettingsViewModel: ObservableObject {
let networkManager: NetworkManagerProtocol
let logging: Logging
@Published var teamName: String = ""
@Published var showAlert: Bool = false
@Published var deleteTeams: Bool = false {
didSet {
deleteAllTeams()
}
}

@Published var teamsDeleted: Bool = false
@AppStorage("teamID") var teamID: Int = 0

init(networkManager: NetworkManagerProtocol, logging: @escaping Logging) {
Expand Down Expand Up @@ -48,6 +56,17 @@ final class SettingsViewModel: ObservableObject {
}
}

func deleteAllTeams() {
if !deleteTeams {
showAlert = true
} else {
print("delete all teams")
networkManager.deleteAllTeams(completion: { _ in })
deleteTeams = false
teamsDeleted = true
}
}

func logOutAction() {
UserDefaults.standard.set(false, forKey: "isLogin")
UserDefaults.standard.set(false, forKey: "isJudge")
Expand Down
5 changes: 4 additions & 1 deletion SiriusProject/en.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,7 @@
"sendpush" = "Send push to all";
"sendpushbutton" = "Send push";
"finishevents" = "Finish";

"deleteallteams" = "Delete all teams";
"askdeleteallteams" = "Are you sure to delete all teams?";
"delete" = "Delete";
"teamsdeleted" = "All commands are deleted";
4 changes: 4 additions & 0 deletions SiriusProject/ru.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,7 @@
"sendpush" = "Уведомления для всех";
"sendpushbutton" = "Отправить";
"finishevents" = "Игры завершены";
"deleteallteams" = "Удалить все команды";
"askdeleteallteams" = "Вы точно хотите удалить все команды?";
"delete" = "Удалить";
"teamsdeleted" = "Все команды удалены";
Loading