예제 #1
0
        public HttpResponseMessage CreateToken([FromBody] TokenPostData tokenData)
        {
            var access = this.GetManagementAccess();

            access.AssertFeatureOrThrow(ApplicationFeature.BehoerdenzugriffAccessTokensBearbeiten);

            var     response = new HttpResponseMessage(HttpStatusCode.OK);
            JObject result   = null;

            try
            {
                if (string.IsNullOrEmpty(tokenData?.Token))
                {
                    return(new HttpResponseMessage(HttpStatusCode.BadRequest));
                }

                if (string.IsNullOrEmpty(tokenData.Bezeichnung))
                {
                    return(new HttpResponseMessage(HttpStatusCode.BadRequest));
                }

                var newToken = tokenDataAccess.CreateToken(tokenData.Token, tokenData.Bezeichnung);
                if (newToken != null)
                {
                    result = new JObject {
                        { "token", JObject.FromObject(newToken) }
                    };
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex, $"Fehler beim erstellen eines Tokens; token:='{tokenData?.Token}', bezeichnung:='{tokenData?.Bezeichnung}'");
                result = new JObject {
                    { "error", ServiceHelper.GetExceptionInfo(ex) }
                };
                response = new HttpResponseMessage(HttpStatusCode.InternalServerError);
            }

            if (result != null)
            {
                response.Content = new JsonContent(result);
            }

            return(response);
        }
예제 #2
0
        public HttpResponseMessage UpdateToken([FromBody] TokenPostData tokenData)
        {
            var access = this.GetManagementAccess();

            access.AssertFeatureOrThrow(ApplicationFeature.BehoerdenzugriffAccessTokensBearbeiten);

            var     response = new HttpResponseMessage(HttpStatusCode.OK);
            JObject result;

            try
            {
                if (string.IsNullOrEmpty(tokenData?.Token))
                {
                    return(new HttpResponseMessage(HttpStatusCode.BadRequest));
                }

                if (tokenData.TokenId <= 0)
                {
                    return(new HttpResponseMessage(HttpStatusCode.BadRequest));
                }

                if (string.IsNullOrEmpty(tokenData.Bezeichnung))
                {
                    return(new HttpResponseMessage(HttpStatusCode.BadRequest));
                }

                tokenDataAccess.UpdateToken(tokenData.TokenId, tokenData.Token, tokenData.Bezeichnung);
                result = new JObject {
                    { "success", true }
                };
            }
            catch (Exception ex)
            {
                Log.Error(ex,
                          $"Fehler beim aktualisieren des Tokens; tokenId:='{tokenData?.TokenId}', token:='{tokenData?.Token}', bezeichnung:='{tokenData?.Bezeichnung}'");
                result = new JObject {
                    { "error", ServiceHelper.GetExceptionInfo(ex) }
                };
                response = new HttpResponseMessage(HttpStatusCode.InternalServerError);
            }

            response.Content = new JsonContent(result);
            return(response);
        }