func HandleRequest()

in lambda/src/main/main.go [48:112]


func HandleRequest(ctx context.Context, wrapper model.RqWrapper) (model.ResWrapper, error) {
	log.Printf("Received Request %+v", wrapper)
	//Validate request body with rues (may need to be a different function per use case)
	err := ValidateRequest(wrapper.Request)
	res := model.ResWrapper{}
	if(err == nil) {
		if(wrapper.SubFunction == FN_CONFIG_LIST_HOTEL) {
			log.Printf("Selected Use Case %v",FN_CONFIG_LIST_HOTEL)
			res, err = usecase.ListHotel(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_SAVE_HOTEL) {
			log.Printf("Selected Use Case %v",FN_CONFIG_SAVE_HOTEL)
			res, err = usecase.SaveHotel(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_GET_HOTEL) {
			log.Printf("Selected Use Case %v",FN_CONFIG_GET_HOTEL)
			res, err = usecase.GetHotel(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_ADD_PICTURE) {
			log.Printf("Selected Use Case %v",FN_CONFIG_ADD_PICTURE)
			res, err = usecase.AddPictures(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_DELETE_PICTURE) {
				log.Printf("Selected Use Case %v",FN_CONFIG_DELETE_PICTURE)
				res, err = usecase.DeletePicture(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_SAVE_ROOMS) {
			log.Printf("Selected Use Case %v",FN_CONFIG_SAVE_ROOMS)
			res, err = usecase.SaveRooms(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_ADD_SELLABLE) {
			log.Printf("Selected Use Case %v",FN_CONFIG_ADD_SELLABLE)
			res, err = usecase.AddSellable(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_ADD_TOOM_TYPE) {
			log.Printf("Selected Use Case %v",FN_CONFIG_ADD_TOOM_TYPE)
			res, err = usecase.AddRoomType(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_ADD_TAG) {
			log.Printf("Selected Use Case %v",FN_CONFIG_ADD_TAG)
			res, err = usecase.AddTag(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_DELETE_SELLABLE) {
			log.Printf("Selected Use Case %v",FN_CONFIG_DELETE_SELLABLE)
			res, err = usecase.DeleteSellable(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_DELETE_ROOM_TYPE) {
			log.Printf("Selected Use Case %v",FN_CONFIG_DELETE_ROOM_TYPE)
			res, err = usecase.DeleteRoomType(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_DELETE_TAG) {
			log.Printf("Selected Use Case %v",FN_CONFIG_DELETE_TAG)
			res, err = usecase.DeleteTag(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_ADD_SELLABLE_PICTURE) {
			log.Printf("Selected Use Case %v",FN_CONFIG_ADD_SELLABLE_PICTURE)
			res, err = usecase.AddSellablePicture(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_ADD_ROOM_TYPE_PICTURE) {
			log.Printf("Selected Use Case %v",FN_CONFIG_ADD_ROOM_TYPE_PICTURE)
			res, err = usecase.AddRoomTypePicture(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_DELETE_SELLABLE_PICTURE) {
			log.Printf("Selected Use Case %v",FN_CONFIG_DELETE_SELLABLE_PICTURE)
			res, err = usecase.DeleteSellablePicture(wrapper,configDb);
		} else if(wrapper.SubFunction == FN_CONFIG_DELETE_ROOM_TYPE_PICTURE) {
			log.Printf("Selected Use Case %v",FN_CONFIG_DELETE_ROOM_TYPE_PICTURE)
			res, err = usecase.DeleteRoomTypePicture(wrapper,configDb)
		} else if(wrapper.SubFunction == FN_CONFIG_PUBLISH_CHANGES) {
			log.Printf("Selected Use Case %v",FN_CONFIG_PUBLISH_CHANGES)
			res, err = usecase.PublishChanges(wrapper,configDb)
		} else {
			log.Printf("No Use Case Found for %v",wrapper.SubFunction)
			err = errors.New("No Use Case Found for sub function " + wrapper.SubFunction)
		}
	}
	log.Printf("Lambda function execusion completed with res: %+v and error: %+v", res,err)
	return res, err
}