github.com/kumasuke120/mockuma@v1.1.9/internal/server/policy.go (about) 1 package server 2 3 import ( 4 "fmt" 5 6 "github.com/kumasuke120/mockuma/internal/mckmaps" 7 "github.com/kumasuke120/mockuma/internal/myhttp" 8 ) 9 10 // predefined policies 11 var ( 12 pNotFound = newJSONPolicy(myhttp.StatusNotFound, "Not Found") 13 pNoPolicyMatched = newJSONPolicy(myhttp.StatusBadRequest, "No policy matched") 14 pMethodNotAllowed = newJSONPolicy(myhttp.StatusMethodNotAllowed, "Method Not Allowed") 15 pInternalServerError = newJSONPolicy(myhttp.StatusInternalServerError, "Internal Server Error") 16 pBadGateway = newJSONPolicy(myhttp.StatusBadGateway, "Bad Gateway") 17 pEmptyOK = &mckmaps.Policy{ 18 CmdType: mckmaps.CmdTypeReturns, 19 Returns: &mckmaps.Returns{StatusCode: myhttp.StatusOK}, 20 } 21 ) 22 23 func newJSONPolicy(statusCode myhttp.StatusCode, message string) *mckmaps.Policy { 24 return &mckmaps.Policy{ 25 CmdType: mckmaps.CmdTypeReturns, 26 Returns: &mckmaps.Returns{ 27 StatusCode: statusCode, 28 Headers: []*mckmaps.NameValuesPair{ 29 {Name: myhttp.HeaderContentType, Values: []string{myhttp.ContentTypeJSON}}, 30 }, 31 Body: []byte(fmt.Sprintf(`{"statusCode": %d, "message": "%s"}`, statusCode, message)), 32 }, 33 } 34 } 35 36 func newForwardPolicy(uri string) *mckmaps.Policy { 37 return &mckmaps.Policy{ 38 CmdType: mckmaps.CmdTypeForwards, 39 Forwards: &mckmaps.Forwards{ 40 Path: uri, 41 }, 42 } 43 }