// FindStatementHead handles request of get meta information func (c *Controller) FindStatementHead(params martini.Params, languages acceptlang.AcceptLanguages, w http.ResponseWriter, req *http.Request) (int, string) { // check version of xAPI xAPIVersion := req.Header.Get("X-Experience-API-Version") if !validator.IsValidXAPIVersion(xAPIVersion) { return NewBadRequestErr("Invalid or empty xAPI version given in X-Experience-API-Version").Response() } w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("X-Experience-API-Version", "1.0.2") w.Header().Set("Content-Type", "application/json") // BUG: this header is wrong when attachments given return http.StatusOK, "" }
// FindStatement handles request of search statement func (c *Controller) FindStatement(params martini.Params, languages acceptlang.AcceptLanguages, w http.ResponseWriter, req *http.Request) (int, string) { user, app := params["user"], params["app"] // check version of xAPI xAPIVersion := req.Header.Get("X-Experience-API-Version") if !validator.IsValidXAPIVersion(xAPIVersion) { return NewBadRequestErr("Invalid or empty xAPI version given in X-Experience-API-Version").Response() } urlParams := req.URL.Query() w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("X-Experience-API-Version", "1.0.2") // find single statement if statementId or voidedStatementId is specified if len(urlParams.Get("statementId")) > 0 || len(urlParams.Get("voidedStatementId")) > 0 { return c.findSingleStatement(xAPIVersion, user, app, urlParams, w) } // otherwise find multiple statments return c.findMultipleStatements(xAPIVersion, user, app, languages, urlParams, w) }