package middleware

import (
	"context"
	"net/http"
)

const (
	PlatformKey = "X-Platform"
)

func GlobalSourceInterceptor(next http.HandlerFunc) http.HandlerFunc {
	return func(w http.ResponseWriter, r *http.Request) {
		// 获取请求头 X-Platform 的值
		platform := r.Header.Get(PlatformKey)

		// 将值放入新的 context 中
		ctx := r.Context()
		if platform != "" {
			ctx = context.WithValue(ctx, "platform", platform)
		}

		// 通过 r.WithContext 将更新后的 ctx 传递给后续的处理函数
		r = r.WithContext(ctx)

		// 传递给下一个处理器
		next(w, r)
	}
}
