Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Notar e Anotar
notar-e-anotar-back-end
Commits
dd05a76c
Commit
dd05a76c
authored
4 years ago
by
Gabriel Soares Correa
Browse files
Options
Download
Email Patches
Plain Diff
Feature/na 10/weekly routines
parent
bd200f4e
master
config-database
feature/swagger-docs
hotfix
hotfix2
link-entities
login
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
pkg/weekly_routines/router.go
+99
-2
pkg/weekly_routines/router.go
pkg/weekly_routines/weekly_routines.go
+73
-11
pkg/weekly_routines/weekly_routines.go
with
172 additions
and
13 deletions
+172
-13
pkg/weekly_routines/router.go
View file @
dd05a76c
...
...
@@ -16,22 +16,119 @@ func NewWeeklyRoutinesRouter() *WeeklyRoutinesRouter {
func
(
u
*
WeeklyRoutinesRouter
)
RegisterRoutes
(
r
*
mux
.
Router
)
{
r
.
Path
(
"/"
)
.
Methods
(
http
.
MethodGet
)
.
HandlerFunc
(
u
.
GetAll
)
r
.
Path
(
"/{id}"
)
.
Methods
(
http
.
MethodGet
)
.
HandlerFunc
(
u
.
Get
)
r
.
PathPrefix
(
"/"
)
.
Methods
(
http
.
MethodPost
)
.
HandlerFunc
(
u
.
Post
)
r
.
PathPrefix
(
"/{id}"
)
.
Methods
(
http
.
MethodPut
)
.
HandlerFunc
(
u
.
Put
)
r
.
Path
(
"/{id}"
)
.
Methods
(
http
.
MethodDelete
)
.
HandlerFunc
(
u
.
Delete
)
}
func
(
u
*
WeeklyRoutinesRouter
)
Get
(
rw
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
vars
:=
mux
.
Vars
(
r
)
weeklyRoutine
,
err
:=
findById
(
r
.
Context
(),
vars
[
"id"
])
if
err
!=
nil
{
log
.
Printf
(
"error finding weeklyRoutine by id: %s"
,
err
)
rw
.
WriteHeader
(
http
.
StatusInternalServerError
)
return
}
bytes
,
err
:=
json
.
Marshal
(
weeklyRoutine
)
if
err
!=
nil
{
log
.
Printf
(
"error marshaling weeklyRoutine: %s"
,
err
)
rw
.
WriteHeader
(
http
.
StatusInternalServerError
)
return
}
rw
.
Header
()
.
Set
(
"Content-Type"
,
"application/json"
)
rw
.
Write
(
bytes
)
}
func
(
u
*
WeeklyRoutinesRouter
)
GetAll
(
rw
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
weeklyRoutines
,
err
:=
findAll
(
r
.
Context
())
if
err
!=
nil
{
log
.
Printf
(
"error finding weekly
r
outine
s
: %s"
,
err
)
log
.
Printf
(
"error finding weekly
R
outine: %s"
,
err
)
rw
.
WriteHeader
(
http
.
StatusInternalServerError
)
return
}
bytes
,
err
:=
json
.
Marshal
(
weeklyRoutines
)
if
err
!=
nil
{
log
.
Printf
(
"error marshaling weekly routines: %s"
,
err
)
log
.
Printf
(
"error marshaling weeklyRoutine: %s"
,
err
)
rw
.
WriteHeader
(
http
.
StatusInternalServerError
)
return
}
rw
.
Header
()
.
Set
(
"Content-Type"
,
"application/json"
)
rw
.
Write
(
bytes
)
}
func
(
u
*
WeeklyRoutinesRouter
)
Post
(
rw
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
var
weeklyRoutine
WeeklyRoutine
err
:=
json
.
NewDecoder
(
r
.
Body
)
.
Decode
(
&
weeklyRoutine
)
if
err
!=
nil
{
log
.
Printf
(
"error decoding weeklyRoutine: %s"
,
err
)
rw
.
WriteHeader
(
http
.
StatusInternalServerError
)
return
}
weeklyRoutine
,
err
=
create
(
r
.
Context
(),
&
weeklyRoutine
)
if
err
!=
nil
{
log
.
Printf
(
"error creating weeklyRoutine: %s"
,
err
)
rw
.
WriteHeader
(
http
.
StatusInternalServerError
)
return
}
bytes
,
err
:=
json
.
Marshal
(
weeklyRoutine
)
if
err
!=
nil
{
log
.
Printf
(
"error marshaling weeklyRoutine: %s"
,
err
)
rw
.
WriteHeader
(
http
.
StatusInternalServerError
)
return
}
rw
.
Header
()
.
Set
(
"Content-Type"
,
"application/json"
)
rw
.
Write
(
bytes
)
}
func
(
u
*
WeeklyRoutinesRouter
)
Put
(
rw
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
vars
:=
mux
.
Vars
(
r
)
var
weeklyRoutine
WeeklyRoutine
err
:=
json
.
NewDecoder
(
r
.
Body
)
.
Decode
(
&
weeklyRoutine
)
if
err
!=
nil
{
log
.
Printf
(
"error decoding weeklyRoutine: %s"
,
err
)
rw
.
WriteHeader
(
http
.
StatusInternalServerError
)
return
}
weeklyRoutine
,
err
=
Update
(
r
.
Context
(),
vars
[
"id"
],
&
weeklyRoutine
)
if
err
!=
nil
{
log
.
Printf
(
"error creating weeklyRoutine: %s"
,
err
)
rw
.
WriteHeader
(
http
.
StatusInternalServerError
)
return
}
bytes
,
err
:=
json
.
Marshal
(
weeklyRoutine
)
if
err
!=
nil
{
log
.
Printf
(
"error marshaling weeklyRoutine: %s"
,
err
)
rw
.
WriteHeader
(
http
.
StatusInternalServerError
)
return
}
rw
.
Header
()
.
Set
(
"Content-Type"
,
"application/json"
)
rw
.
Write
(
bytes
)
}
func
(
u
*
WeeklyRoutinesRouter
)
Delete
(
rw
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
vars
:=
mux
.
Vars
(
r
)
err
:=
Delete
(
r
.
Context
(),
vars
[
"id"
])
if
err
!=
nil
{
log
.
Printf
(
"error finding weeklyRoutine by id: %s"
,
err
)
rw
.
WriteHeader
(
http
.
StatusInternalServerError
)
return
}
rw
.
Header
()
.
Set
(
"Content-Type"
,
"application/json"
)
rw
.
WriteHeader
(
http
.
StatusOK
)
}
This diff is collapsed.
Click to expand it.
pkg/weekly_routines/weekly_routines.go
View file @
dd05a76c
...
...
@@ -6,18 +6,45 @@ import (
"github.com/kamva/mgm/v3"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"tools.ages.pucrs.br/notar-e-anotar/notar-e-anotar-back-end/pkg/routine_days"
)
type
routine_day_id
struct
{
Routine_day_id
primitive
.
ObjectID
`json:"routine_day_id" bson:"routine_day_id"`
}
type
WeeklyRoutine
struct
{
mgm
.
DefaultModel
`bson:",inline"`
Year
primitive
.
DateTime
`json:"year" bson:"year"`
Routine_plan_id
primitive
.
ObjectID
`json:"routine_plan_id" bson:"routine_plan_id"`
Week_number
int32
`json:"week_number" bson:"week_number"`
Wubject
primitive
.
ObjectID
`json:"subject" bson:"subject"`
Routine_days
[]
routine_day_id
`json:"routine_days" bson:"routine_days"`
Year
primitive
.
DateTime
`json:"year" bson:"year"`
Routine_plan_id
primitive
.
ObjectID
`json:"routine_plan_id" bson:"routine_plan_id"`
Week_number
int32
`json:"week_number" bson:"week_number"`
Subject
primitive
.
ObjectID
`json:"subject" bson:"subject"`
Routine_days
[]
routine_days
.
RoutineDays
`json:"routine_days" bson:"routine_days"`
}
func
create
(
ctx
context
.
Context
,
weeklyRoutine
*
WeeklyRoutine
)
(
WeeklyRoutine
,
error
)
{
coll
:=
mgm
.
Coll
(
weeklyRoutine
)
err
:=
coll
.
CreateWithCtx
(
ctx
,
weeklyRoutine
)
if
err
!=
nil
{
return
WeeklyRoutine
{},
err
}
return
*
weeklyRoutine
,
nil
}
func
Delete
(
ctx
context
.
Context
,
id
interface
{})
error
{
weeklyRoutine
:=
&
WeeklyRoutine
{}
coll
:=
mgm
.
Coll
(
weeklyRoutine
)
err
:=
coll
.
FindByIDWithCtx
(
ctx
,
id
,
weeklyRoutine
)
if
err
!=
nil
{
return
err
}
err
=
coll
.
DeleteWithCtx
(
ctx
,
weeklyRoutine
)
if
err
!=
nil
{
return
err
}
return
nil
}
func
findAll
(
ctx
context
.
Context
)
([]
WeeklyRoutine
,
error
)
{
...
...
@@ -28,11 +55,46 @@ func findAll(ctx context.Context) ([]WeeklyRoutine, error) {
return
nil
,
err
}
weekly
_r
outine
s
:=
make
([]
WeeklyRoutine
,
0
)
err
=
result
.
All
(
ctx
,
&
weekly
_r
outine
s
)
weekly
R
outine
:=
make
([]
WeeklyRoutine
,
0
)
err
=
result
.
All
(
ctx
,
&
weekly
R
outine
)
if
err
!=
nil
{
return
nil
,
err
}
return
weekly_routines
,
nil
return
weeklyRoutine
,
nil
}
func
findById
(
ctx
context
.
Context
,
id
interface
{})
(
WeeklyRoutine
,
error
)
{
weeklyRoutine
:=
&
WeeklyRoutine
{}
coll
:=
mgm
.
Coll
(
weeklyRoutine
)
err
:=
coll
.
FindByIDWithCtx
(
ctx
,
id
,
weeklyRoutine
)
if
err
!=
nil
{
return
WeeklyRoutine
{},
err
}
return
*
weeklyRoutine
,
nil
}
func
Update
(
ctx
context
.
Context
,
id
interface
{},
newWeeklyRoutine
*
WeeklyRoutine
)
(
WeeklyRoutine
,
error
)
{
oldWeeklyRoutine
:=
&
WeeklyRoutine
{}
coll
:=
mgm
.
Coll
(
oldWeeklyRoutine
)
err
:=
coll
.
FindByIDWithCtx
(
ctx
,
id
,
oldWeeklyRoutine
)
if
err
!=
nil
{
return
WeeklyRoutine
{},
err
}
oldWeeklyRoutine
.
Year
=
newWeeklyRoutine
.
Year
oldWeeklyRoutine
.
Routine_plan_id
=
newWeeklyRoutine
.
Routine_plan_id
oldWeeklyRoutine
.
Week_number
=
newWeeklyRoutine
.
Week_number
oldWeeklyRoutine
.
Subject
=
newWeeklyRoutine
.
Subject
oldWeeklyRoutine
.
Routine_days
=
newWeeklyRoutine
.
Routine_days
err
=
coll
.
UpdateWithCtx
(
ctx
,
oldWeeklyRoutine
)
if
err
!=
nil
{
return
WeeklyRoutine
{},
err
}
return
*
oldWeeklyRoutine
,
nil
}
This diff is collapsed.
Click to expand it.
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
Menu
Projects
Groups
Snippets
Help