示例#1
0
        public async Task <ActionResult <Walk> > GetWalk([FromHeader] string token, [FromHeader] string email,
                                                         [FromRoute] string id, [FromHeader] bool isUser)
        {
            // if user and not authenticated
            if (isUser && !await _walkerRepository.Authenticated(token, email))
            {
                return(Unauthorized());
            }
            // is safewalker and not authenticated
            else if (!isUser && !await _safewalkerRepository.Authenticated(token, email))
            {
                return(Unauthorized());
            }

            var walk = await _walkRepository.Get(id);

            if (walk == null)
            {
                return(NotFound());
            }

            // Check if person is part of the walk
            if (isUser && walk.UserEmail != email)
            {
                return(Unauthorized());
            }
            else if (!isUser && walk.WalkerEmail != email)
            {
                return(Unauthorized());
            }

            return(Ok(walk));
        }