Documentation ¶
Index ¶
- Variables
- type Server
- func (s *Server) AllTasks(w http.ResponseWriter, r *http.Request)
- func (s *Server) CreateGroup(w http.ResponseWriter, r *http.Request)
- func (s *Server) CreateInviteLink(w http.ResponseWriter, r *http.Request)
- func (s *Server) CreateInviteViaGroup(w http.ResponseWriter, r *http.Request)
- func (s *Server) CreateTask(w http.ResponseWriter, r *http.Request)
- func (s *Server) CreateToken(w http.ResponseWriter, r *http.Request)
- func (s *Server) GetTask(w http.ResponseWriter, r *http.Request)
- func (s *Server) Ping(w http.ResponseWriter, r *http.Request)
- func (s *Server) RegisterUser(w http.ResponseWriter, r *http.Request)
- func (s *Server) Start(context.Context) error
- func (s *Server) Stop(ctx context.Context) error
- func (s *Server) UseInvite(w http.ResponseWriter, r *http.Request)
- func (s *Server) UserMe(w http.ResponseWriter, r *http.Request)
- type Service
Constants ¶
This section is empty.
Variables ¶
View Source
var ( TestUser1 = &model.User{ ID: uuid.New(), Pass: "test password", Email: "example@ex.com", } TestTokenRequest = &model.CreateTokenRequest{ Email: TestUser1.Email, Password: TestUser1.Pass, TokenType: "auth", } )
View Source
var (
ErrNilPointer = errors.New("nil pointer reference")
)
Functions ¶
This section is empty.
Types ¶
type Server ¶
type Server struct { *chi.Mux // contains filtered or unexported fields }
Server ...
func TestServer ¶
TestServer is helper function that creates http server
func (*Server) AllTasks ¶
func (s *Server) AllTasks(w http.ResponseWriter, r *http.Request)
AllTasks godoc.
@Tags Tasks @Summary Get user tasks. @ID get_tasks @Accept plain @Produce json @Success 200 {object} model.GetTasksResponse @Failure 401 {object} model.Error @Failure 404 {object} model.Error @Failure 500 {object} model.Error @Router /tasks [get]
func (*Server) CreateGroup ¶
func (s *Server) CreateGroup(w http.ResponseWriter, r *http.Request)
CreateGroup create new group.
@Tags Groups @Summary Создание группы пользователей @ID group_create @Accept json @Produce json @Param request body model.CreateGroupRequest true "group data" @Success 201 {object} model.CreateGroupResponse "Created" @Failure 400 {object} model.Error "Bad Request" @Failure 401 {object} model.Error "Not Authorized" @Failure 409 {object} model.Error "Conflict" @Failure 500 {object} model.Error "Internal Server Error" @Router /groups/ [post]
func (*Server) CreateInviteLink ¶
func (s *Server) CreateInviteLink(w http.ResponseWriter, r *http.Request)
CreateInviteLink create new invite link.
@Tags Invites,Groups @Summary создание приглашения в группу. @ID invite_user @Accept json @Produce json @Param request body model.CreateInviteRequest true "invite data" @Success 201 {object} model.CreateInviteResponse @Failure 400 {object} model.Error @Failure 401 {object} model.Error @Failure 403 {object} model.Error @Failure 409 {object} model.Error @Failure 500 {object} model.Error @Router /invites [post]
func (*Server) CreateInviteViaGroup ¶
func (s *Server) CreateInviteViaGroup(w http.ResponseWriter, r *http.Request)
CreateInviteViaGroup create new invite link.
@Tags Invites,Groups @Summary создание приглашения в группу. @ID invite_user_groups @Accept json @Produce json @Param request body model.CreateInviteViaGroupRequest true "invite data" @Param group_id path string true "group id" @Success 201 {object} model.CreateInviteResponse @Failure 400 {object} model.Error @Failure 401 {object} model.Error @Failure 403 {object} model.Error @Failure 409 {object} model.Error @Failure 500 {object} model.Error @Router /groups/{group_id}/invite [post]
func (*Server) CreateTask ¶
func (s *Server) CreateTask(w http.ResponseWriter, r *http.Request)
CreateTask create task.
@Tags Tasks @Summary Create task. @ID create_task @Accept json @Produce json @Param request body model.TaskCreateRequest true "task" @Success 200 {object} model.Task @Failure 400 {object} model.Error @Failure 401 {object} model.Error @Failure 403 {object} model.Error @Failure 409 {object} model.Error @Failure 500 {object} model.Error @Router /tasks/ [post]
func (*Server) CreateToken ¶
func (s *Server) CreateToken(w http.ResponseWriter, r *http.Request)
CreateToken creates JWT bearer token with provided data.
@Tags Tokens @Summary Создание JWT токена для пользователя. @ID login_jwt @Accept json @Produce json @Param request body model.CreateTokenRequest true "User data" @Success 201 {object} model.CreateTokenResponse @Failure 400 {object} model.Error "Bad Request" @Failure 401 {object} model.Error "Unauthorized" @Failure 500 {object} model.Error "Internal Server Error" @Router /users/token [post]
func (*Server) GetTask ¶
func (s *Server) GetTask(w http.ResponseWriter, r *http.Request)
GetTask return summary info about task.
@Tags Tasks @Summary Get task by ID. @ID get_task @Accept plain @Produce json @Param task_id path string true "task id" @Success 200 {object} model.Task @Failure 400 {object} model.Error @Failure 401 {object} model.Error @Failure 403 {object} model.Error @Failure 409 {object} model.Error @Failure 500 {object} model.Error @Router /tasks/{task_id} [get]
func (*Server) Ping ¶
func (s *Server) Ping(w http.ResponseWriter, r *http.Request)
Ping godoc.
@Tags Server @Summary Запрос состояния сервиса @ID ping @Accept plain @Produce plain @Success 200 {string} string "OK" @Failure 500 {string} string "Internal Server Error" @Router /ping [get]
func (*Server) RegisterUser ¶
func (s *Server) RegisterUser(w http.ResponseWriter, r *http.Request)
RegisterUser creates user with provided data.
@Tags User @Summary Создание пользователя @ID user_create @Accept json @Produce json @Param request body model.RegisterUserRequest true "User data" @Success 201 {object} model.User @Failure 400 {object} model.Error "Bad Request" @Failure 409 {object} model.Error "Conflict" @Failure 500 {object} model.Error "Internal Server Error" @Router /users/register [post]
func (*Server) UseInvite ¶
func (s *Server) UseInvite(w http.ResponseWriter, r *http.Request)
UseInvite add user to group if invite is good.
@Tags Groups @Summary Использование приглашения в группу. @ID apply_user_to_group @Accept plain @Produce json @Param group_id path string true "group id" @Param invite query string true "invite id" @Success 201 {string} model.CreateInviteResponse @Failure 400 {object} model.Error @Failure 401 {object} model.Error @Failure 403 {object} model.Error @Failure 409 {object} model.Error @Failure 500 {object} model.Error @Router /groups/{group_id}/apply [post]
func (*Server) UserMe ¶
func (s *Server) UserMe(w http.ResponseWriter, r *http.Request)
UserMe return user profile.
@Tags Users @Summary Get summary info about user. @ID users_me @Accept plain @Produce json @Success 200 {object} model.GetMeResponse @Failure 401 {object} model.Error @Failure 404 {object} model.Error @Failure 500 {object} model.Error @Router /users/me [get]
type Service ¶
type Service interface { // Ping checks access to server. Ping(ctx context.Context) error // CreateToken create new jwt token for refresh and access to server if auth credits are correct. CreateToken(ctx context.Context, email, password, token string) (*model.CreateTokenResponse, error) // RegisterUser create record about user in storage and prepares response to user. RegisterUser(ctx context.Context, email, password string) (*model.User, error) // GetUserFromToken is helper function that decodes jwt token from t and check existing of user which id is provided // in token claims. GetUserFromToken(ctx context.Context, t string) (uuid.UUID, error) // CreateGroup create new group. CreateGroup(ctx context.Context, user uuid.UUID, name, description string) (*model.CreateGroupResponse, error) // CreateInvite creates invite link. CreateInvite(ctx context.Context, user, group uuid.UUID, role *model.Role, limit int) (*model.CreateInviteResponse, error) // UseInvite add user to group if invite is ok. UseInvite(ctx context.Context, user, group, invite uuid.UUID) error // GetMe return user's info GetMe(ctx context.Context, user uuid.UUID) (*model.GetMeResponse, error) // GetUserTasks return all tasks that are related to user. GetUserTasks(ctx context.Context, user uuid.UUID) (*model.GetTasksResponse, error) // GetTask return task if user related to task and task exists. GetTask(ctx context.Context, user, task uuid.UUID) (*model.Task, error) CreateTask(ctx context.Context, user uuid.UUID, task model.TaskCreateRequest) (*model.Task, error) }
Click to show internal directories.
Click to hide internal directories.