<commit_before>package main

import (
	"encoding/json"
	"github.com/realglobe-Inc/edo/util"
	"github.com/realglobe-Inc/go-lib-rg/erro"
	"net/http"
)

func responseError(w http.ResponseWriter, err error) error {
	// リダイレクトでエラーを返す時のように認証経過を廃棄する必要は無い。
	// 認証が始まって経過が記録されているなら、既にリダイレクト先が分かっているので、
	// リダイレクトでエラーを返す。

	var stat int
	m := map[string]string{}
	switch e := erro.Unwrap(err).(type) {
	case *idpError:
		log.Err(e.errorDescription())
		log.Debug(e)
		stat = e.status()
		m[formErr] = e.errorCode()
		m[formErrDesc] = e.errorDescription()
	default:
		log.Err(e)
		log.Debug(err)
		stat = http.StatusInternalServerError
		m[formErr] = errServErr
		m[formErrDesc] = e.Error()
	}

	buff, err := json.Marshal(m)
	if err != nil {
		err = erro.Wrap(err)
		log.Err(erro.Unwrap(err))
		log.Debug(err)
		// 最後の手段。たぶん正しい変換。
		buff = []byte(`{` + formErr + `="` + util.JsonStringEscape(m[formErr]) +
			`",` + formErrDesc + `="` + util.JsonStringEscape(m[formErrDesc]) + `"}`)
	}

	w.WriteHeader(stat)<commit_msg>エラーレスポンス時の Content-Type を設定するようにした<commit_after>package main

import (
	"encoding/json"
	"github.com/realglobe-Inc/edo/util"
	"github.com/realglobe-Inc/go-lib-rg/erro"
	"net/http"
	"strconv"
)

func responseError(w http.ResponseWriter, err error) error {
	// リダイレクトでエラーを返す時のように認証経過を廃棄する必要は無い。
	// 認証が始まって経過が記録されているなら、既にリダイレクト先が分かっているので、
	// リダイレクトでエラーを返す。

	var stat int
	m := map[string]string{}
	switch e := erro.Unwrap(err).(type) {
	case *idpError:
		log.Err(e.errorDescription())
		log.Debug(e)
		stat = e.status()
		m[formErr] = e.errorCode()
		m[formErrDesc] = e.errorDescription()
	default:
		log.Err(e)
		log.Debug(err)
		stat = http.StatusInternalServerError
		m[formErr] = errServErr
		m[formErrDesc] = e.Error()
	}

	buff, err := json.Marshal(m)
	if err != nil {
		err = erro.Wrap(err)
		log.Err(erro.Unwrap(err))
		log.Debug(err)
		// 最後の手段。たぶん正しい変換。
		buff = []byte(`{` + formErr + `="` + util.JsonStringEscape(m[formErr]) +
			`",` + formErrDesc + `="` + util.JsonStringEscape(m[formErrDesc]) + `"}`)
	}

	w.Header().Set("Content-Type", util.ContentTypeJson)
	w.Header().Set("Content-Length", strconv.Itoa(len(buff)))
	w.WriteHeader(stat)
{'fraction_non_alphanumeric': 0.17538176770013883, 'fraction_numerical': 0.0, 'mean_word_length': 4.325123152709359, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6279007', 'n_tokens_mistral': 1095, 'n_tokens_neox': 1042, 'n_words': 128}