Skip to main content
Glama
messages.model.go1.82 kB
package lunarmessages import ( "fmt" "net/url" "time" ) const ( LunarRequest = "lunar-on-request" LunarFullRequest = "lunar-on-full-request" LunarResponse = "lunar-on-response" LunarFullResponse = "lunar-on-full-response" ) type OnRequest struct { LunarName string ID string SequenceID string Method string Scheme string URL string Path string Query string Headers map[string]string Body string RawBody []byte Time time.Time parsedURL *url.URL parsedURLParts parsedURLParts } type parsedURLParts struct { scheme string url string query string } func (onRequest *OnRequest) IsFullRequest() bool { return onRequest.LunarName == LunarFullRequest } func (onRequest *OnRequest) ParsedURL() (*url.URL, error) { currentURLParts := parsedURLParts{ scheme: onRequest.Scheme, url: onRequest.URL, query: onRequest.Query, } if onRequest.parsedURL == nil || currentURLParts != onRequest.parsedURLParts { urlWithQueryString := fmt.Sprintf( "%s://%s?%s", onRequest.Scheme, onRequest.URL, onRequest.Query, ) parsedURL, err := url.Parse(urlWithQueryString) if err != nil { return nil, err } onRequest.parsedURL = parsedURL onRequest.parsedURLParts = currentURLParts } return onRequest.parsedURL, nil } type OnResponse struct { LunarName string ID string SequenceID string Method string URL string Status int Headers map[string]string Body string RawBody []byte Time time.Time } func (onResponse *OnResponse) IsFullResponse() bool { return onResponse.LunarName == LunarFullResponse } func (onResponse *OnResponse) IsNewSequence() bool { return onResponse.ID == onResponse.SequenceID }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheLunarCompany/lunar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server