generated from your-land/yl_template
your-land/yl_survey#2 Implements get_response
This commit is contained in:
parent
f78220c7f2
commit
61b8048148
14
README.md
14
README.md
@ -149,6 +149,18 @@ yl_survey.get_question(s_id, q_id, include_responses, playername)
|
||||
|
||||
Returns `true, {question}` if successful, `false, "errormessage"` if not.
|
||||
|
||||
```
|
||||
yl_survey.get_response(s_id, q_id, playername, include_question, include_freetext)
|
||||
```
|
||||
|
||||
* s_id: string, required. This is the survey/UUID the question is added to.
|
||||
* q_id: number, required.
|
||||
* playername: string, required.
|
||||
* include_question: boolean, optional, defaults to `false`. If `true`, the question to that response is included.
|
||||
* include_freetext: boolean, optional, defaults to `false`. If `true`, the freetext of that response is included.
|
||||
|
||||
Returns `true, {response}` if successful, `false, "errormessage"` if not. May be `{}`, if the player did not yet respond to that question.
|
||||
|
||||
```
|
||||
yl_survey.answer_question(s_id, q_id, playername, {responses}, overwrite)
|
||||
```
|
||||
@ -171,7 +183,7 @@ Creates a book of the answers of the survey and places it in the player's invent
|
||||
yl_survey.validate_questions(s_id)
|
||||
```
|
||||
|
||||
Returns `true, number` if successfully validated `number` amount of questions, `false, "errormessage"` if teh validation was not successful.
|
||||
Returns `true, number` if successfully validated `number` amount of questions, `false, "errormessage"` if the validation was not successful.
|
||||
|
||||
## Limitations
|
||||
|
||||
|
46
api.lua
46
api.lua
@ -751,3 +751,49 @@ end
|
||||
function yl_survey.get_question(s_id, q_id, include_responses, playername)
|
||||
return get_question(s_id, q_id, include_responses, playername)
|
||||
end
|
||||
|
||||
-- get_response
|
||||
--
|
||||
|
||||
local function get_response(id, q_id, playername, include_question, include_freetext)
|
||||
-- Defense
|
||||
if (validate(id, "string", false) == false) then
|
||||
return false, yl_survey.t("id must be string")
|
||||
end
|
||||
if (validate(q_id, "number", false) == false) then
|
||||
return false, yl_survey.t("q_id must be number")
|
||||
end
|
||||
if (q_id <= 0) then return false, "q_id must be positive number" end
|
||||
if (validate(playername, "string", false) == false) then
|
||||
return false, yl_survey.t("playername must be string")
|
||||
end
|
||||
if (validate(include_question, "boolean", true) == false) then
|
||||
return false, yl_survey.t("include_question must be boolean")
|
||||
end
|
||||
if (validate(include_freetext, "boolean", true) == false) then
|
||||
return false, yl_survey.t("include_freetext must be boolean")
|
||||
end
|
||||
|
||||
local record = yl_survey.get_record(id)
|
||||
|
||||
if (record == nil) then
|
||||
return false, yl_survey.t("record does not exist")
|
||||
end
|
||||
|
||||
-- Payload
|
||||
local question = record[tostring(q_id)] or {}
|
||||
local response = question["responses"] and question["responses"][playername] or {}
|
||||
|
||||
if (include_question ~= true) then response["q"] = nil end
|
||||
if (include_freetext ~= true) then response["0"] = nil end
|
||||
|
||||
if (next(question) ~= nil) then
|
||||
return true, response
|
||||
else
|
||||
return false, yl_survey.t("question does not exist")
|
||||
end
|
||||
end
|
||||
|
||||
function yl_survey.get_response(s_id, q_id, playername, include_question)
|
||||
return get_response(s_id, q_id, playername, include_question)
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user