aboutsummaryrefslogtreecommitdiff
path: root/captain/requtils.f90
diff options
context:
space:
mode:
Diffstat (limited to 'captain/requtils.f90')
-rw-r--r--captain/requtils.f9037
1 files changed, 37 insertions, 0 deletions
diff --git a/captain/requtils.f90 b/captain/requtils.f90
index 7010bcb..cb52113 100644
--- a/captain/requtils.f90
+++ b/captain/requtils.f90
@@ -319,4 +319,41 @@ contains
end subroutine get_job_page_title
+ subroutine handle_instruction_command(req)
+ use captain_db
+ use server_response
+ use remote_launch
+ implicit none
+
+ type(request), intent(in)::req
+ character(32)::command
+ character(PLAYER_NAME_LENGTH)::argument, instruction_name
+
+ integer::i, j
+
+ i = index(req%page, ".", back=.true.)
+
+ instruction_name = req%page(1:i-1)
+
+ i = index(req%query_string, "=")
+ command = req%query_string(1:i-1)
+ argument = req%query_string(i+1:len_trim(req%query_string))
+
+ if(trim(command) == "launch") then
+ call launch_instructions_on_player(instruction_name, argument)
+
+ else if(trim(command) == "assign") then
+ i = get_instruction_id(trim(instruction_name))
+ j = get_player_id(trim(argument))
+ call add_player_for_instruction(i, j)
+
+ else if(trim(command) == "remove") then
+ i = get_instruction_id(trim(instruction_name))
+ j = get_player_id(trim(argument))
+ call remove_player_for_instruction(i, j)
+
+ end if
+
+ end subroutine handle_instruction_command
+
end module request_utils \ No newline at end of file