You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: handlers.go
    path of file: ./repos/arozos/src/mod/time/scheduler
    
    the code of the file until where you have to start completion: package scheduler

import (
	"encoding/json"
	"net/http"
	"strconv"
	"time"

	"imuslab.com/arozos/mod/utils"
)

//List all the jobs related to the given user
func (a *Scheduler) HandleListJobs(w http.ResponseWriter, r *http.Reque
    
func (a *Scheduler) HandleJobRemoval(w http.ResponseWriter, r *http.Request) {
	userinfo, err := a.options.UserHandler.GetUserInfoFromRequest(w, r)
	if err != nil {
		utils.SendErrorResponse(w, "User not logged in")
		return
	}

	//Get required paramaters
	taskName, err := utils.PostPara(r, "name")
	if err != nil {
		utils.SendErrorResponse(w, "Invalid task name")
		return
	}

	//Check if Job exists
	if !a.JobExists(taskName) {
		//Job with that name not exists
		utils.SendErrorResponse(w, "Job not exists")
		return
	}

	targetJob := a.GetScheduledJobByName(taskName)

	//Job exists. Check if the job is created by the user.
	//User can only remove job created by himself or all job is he is admin
	allowRemove := false
	if !userinfo.IsAdmin() && targetJob.Creator == userinfo.Username {
		allowRemove = true
	} else if userinfo.IsAdmin() {
		allowRemove = true
	}

	if !allowRemove {
		utils.SendErrorResponse(w, "Permission Denied")
		return
	}

	//Ok. Remove Job from the list
	a.RemoveJobFromScheduleList(taskName)

	//Write current job lists to file
	a.saveJobsToCronFile()

	utils.SendOK(w)
}