Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
F
form-creator-api
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
2
Issues
2
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
simmctic
form-creator
form-creator-api
Commits
1bea58f0
Commit
1bea58f0
authored
Jun 05, 2019
by
Matheus Horstmann
🐴
Committed by
Lucas Fernandes de Oliveira
Jun 05, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issue
#24
: Insert Form Answers in DB
Signed-off-by:
Matheus Horstmann
<
mch15@inf.ufpr.br
>
parent
a575e0ec
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
370 additions
and
5 deletions
+370
-5
CHANGELOG.md
CHANGELOG.md
+7
-0
package.json
package.json
+1
-1
src/utils/dbHandler.spec.ts
src/utils/dbHandler.spec.ts
+98
-0
src/utils/dbHandler.ts
src/utils/dbHandler.ts
+228
-3
src/utils/optHandler.ts
src/utils/optHandler.ts
+2
-1
src/utils/testHandler.ts
src/utils/testHandler.ts
+34
-0
No files found.
CHANGELOG.md
View file @
1bea58f0
...
...
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
The format is based on
[
Keep a Changelog
](
https://keepachangelog.com/en/1.0.0/
)
,
and this project adheres to
[
Semantic Versioning
](
https://semver.org/spec/v2.0.0.html
)
.
## 0.0.18 - 25-05-2019
### Added
-
Create readFormAnswer method to read formAnswer from database #24 (Horstmann)
-
Create writeFormAnswer method to insert formAnswer into database #24 (Horstmann)
-
Create TestHandler to tests FormAnswers
### Changed
-
Fix OptHandler to return id in inputAnswer
## 0.0.17 - 25-05-2019
### Added
...
...
package.json
View file @
1bea58f0
{
"name"
:
"form-creator-api"
,
"version"
:
"0.0.1
6
"
,
"version"
:
"0.0.1
8
"
,
"description"
:
"RESTful API used to manage and answer forms."
,
"main"
:
"index.js"
,
"scripts"
:
{
...
...
src/utils/dbHandler.spec.ts
View file @
1bea58f0
...
...
@@ -22,7 +22,9 @@ import { series } from "async";
import
{
expect
}
from
"
chai
"
;
import
{
QueryResult
}
from
"
pg
"
;
import
{
Form
,
FormOptions
}
from
"
../core/form
"
;
import
{
FormAnswer
,
FormAnswerOptions
}
from
"
../core/formAnswer
"
;
import
{
Input
,
InputOptions
,
Validation
}
from
"
../core/input
"
;
import
{
InputAnswer
,
InputAnswerDict
,
InputAnswerOptions
,
InputAnswerOptionsDict
}
from
"
../core/inputAnswer
"
;
import
{
configs
}
from
"
./config
"
;
import
{
DbHandler
,
QueryOptions
}
from
"
./dbHandler
"
;
import
{
InputType
,
ValidationType
}
from
"
./enumHandler
"
;
...
...
@@ -490,4 +492,100 @@ describe("Read and Write on Database", () => {
});
it
(
"
should read an existent form Answer
"
,
(
done
)
=>
{
const
inputAnswersOpt1
:
InputAnswerOptions
=
{
id
:
5
,
idInput
:
1
,
placement
:
0
,
value
:
"
Answer to Question 1 Form 1
"
};
const
inputAnswersOpt2
:
InputAnswerOptions
=
{
id
:
6
,
idInput
:
2
,
placement
:
0
,
value
:
"
Answer to Question 2 Form 1
"
};
const
inputAnswersOpt3
:
InputAnswerOptions
=
{
id
:
7
,
idInput
:
3
,
placement
:
0
,
value
:
"
Answer to Question 3 Form 1
"
};
const
inputAnswerOptionsDict
:
InputAnswerOptionsDict
=
{
1
:
[
inputAnswersOpt1
],
2
:
[
inputAnswersOpt2
],
3
:
[
inputAnswersOpt3
]};
const
data
:
Date
=
new
Date
(
"
2019-02-21 12:10:25
"
);
dbhandler
.
readForm
(
1
,
(
error
:
Error
,
form
:
Form
)
=>
{
const
formAnswerOptions
:
FormAnswerOptions
=
{
id
:
3
,
form
,
timestamp
:
data
,
inputsAnswerOptions
:
inputAnswerOptionsDict
};
dbhandler
.
readFormAnswer
(
3
,
(
err
:
Error
,
formAnswer
:
FormAnswer
)
=>
{
TestHandler
.
testFormAnswer
(
formAnswer
,
new
FormAnswer
(
OptHandler
.
formAnswer
(
formAnswerOptions
)));
done
();
});
});
});
it
(
"
should read a non existent form Answer
"
,
(
done
)
=>
{
dbhandler
.
readFormAnswer
(
25
,
(
err
:
Error
,
formAnswer
:
FormAnswer
)
=>
{
expect
(
err
).
to
.
not
.
equal
(
null
);
expect
(
formAnswer
).
to
.
be
.
undefined
;
done
();
});
});
it
(
"
should write form Answer
"
,
(
done
)
=>
{
const
inputAnswersOpt1
:
InputAnswerOptions
=
{
id
:
5
,
idInput
:
1
,
placement
:
0
,
value
:
"
Answer to Question 1 Form 1
"
};
const
inputAnswersOpt2
:
InputAnswerOptions
=
{
id
:
6
,
idInput
:
2
,
placement
:
0
,
value
:
"
Answer to Question 2 Form 1
"
};
const
inputAnswersOpt3
:
InputAnswerOptions
=
{
id
:
7
,
idInput
:
3
,
placement
:
0
,
value
:
"
Answer to Question 3 Form 1
"
};
const
inputAnswerOptionsDict
:
InputAnswerOptionsDict
=
{
1
:
[
inputAnswersOpt1
],
2
:
[
inputAnswersOpt2
],
3
:
[
inputAnswersOpt3
]};
const
data
:
Date
=
new
Date
(
2019
,
6
,
4
);
dbhandler
.
readForm
(
1
,
(
error
:
Error
,
form
:
Form
)
=>
{
const
formAnswerOptions
:
FormAnswerOptions
=
{
form
,
timestamp
:
data
,
inputsAnswerOptions
:
inputAnswerOptionsDict
};
const
formAnswer
=
new
FormAnswer
(
OptHandler
.
formAnswer
(
formAnswerOptions
));
dbhandler
.
writeFormAnswer
(
formAnswer
,
(
err
:
Error
,
formAnswerResult
:
FormAnswer
)
=>
{
expect
(
err
).
to
.
be
.
a
(
"
null
"
);
expect
(
formAnswerResult
.
id
).
to
.
be
.
equal
(
7
);
let
inputAnswerId
:
number
=
15
;
for
(
const
key
of
Object
.
keys
(
formAnswerResult
.
inputAnswers
)){
for
(
const
inputAnswer
of
formAnswerResult
.
inputAnswers
[
parseInt
(
key
,
10
)]){
expect
(
inputAnswer
.
id
).
to
.
be
.
equal
(
inputAnswerId
);
inputAnswerId
++
;
}
}
done
();
});
});
});
});
src/utils/dbHandler.ts
View file @
1bea58f0
This diff is collapsed.
Click to expand it.
src/utils/optHandler.ts
View file @
1bea58f0
...
...
@@ -144,7 +144,8 @@
}
const
option
:
InputAnswerOptions
=
{
idInput
:
obj
.
idInput
id
:
obj
.
id
,
idInput
:
obj
.
idInput
,
placement
:
obj
.
placement
,
value
:
obj
.
value
};
...
...
src/utils/testHandler.ts
View file @
1bea58f0
...
...
@@ -21,7 +21,9 @@
import
{
expect
}
from
"
chai
"
;
import
{
Form
}
from
"
../core/form
"
;
import
{
FormAnswer
}
from
"
../core/formAnswer
"
;
import
{
Input
,
Validation
}
from
"
../core/input
"
;
import
{
InputAnswer
}
from
"
../core/inputAnswer
"
;
import
{
EnumHandler
,
InputType
,
ValidationType
}
from
"
./enumHandler
"
;
/**
...
...
@@ -69,4 +71,36 @@
}
}
/**
* Verify if two formAnswers are semantically equal;
* @param formAnswer - Form Answer that should be tested
* @param stub - A model formAnswer that first param itend to be.
* @returns - True if formAnswers are equal else false
*/
public
static
testFormAnswer
(
formAnswer
:
FormAnswer
,
stub
:
FormAnswer
){
expect
(
formAnswer
.
id
).
to
.
be
.
equal
(
stub
.
id
);
TestHandler
.
testForm
(
formAnswer
.
form
,
stub
.
form
);
for
(
const
key
of
Object
.
keys
(
formAnswer
.
inputAnswers
)){
formAnswer
.
inputAnswers
[
parseInt
(
key
,
10
)].
forEach
((
inputAnswer
,
i
)
=>
{
TestHandler
.
testInputAnswer
(
inputAnswer
,
stub
.
inputAnswers
[
parseInt
(
key
,
10
)][
i
]);
});
}
expect
(
formAnswer
.
timestamp
.
toISOString
()).
to
.
be
.
equal
(
stub
.
timestamp
.
toISOString
());
}
/**
* Verify if two inputAnswer are semantically equal;
* @param inputAnswer - inputAnswer that should be tested
* @param stub - A model inputAnswer that first param itend to be.
* @returns - True if inputAnswer are equal else false
*/
public
static
testInputAnswer
(
inputAnswer
:
InputAnswer
,
stub
:
InputAnswer
){
expect
(
inputAnswer
.
id
).
to
.
be
.
equal
(
stub
.
id
);
expect
(
inputAnswer
.
idInput
).
to
.
be
.
equal
(
stub
.
idInput
);
expect
(
inputAnswer
.
placement
).
to
.
be
.
equal
(
stub
.
placement
);
expect
(
inputAnswer
.
value
).
to
.
be
.
equal
(
stub
.
value
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment