fixing locimage paths, starting room work

This commit is contained in:
2022-01-08 22:50:46 -05:00
parent e84f57692a
commit c811a8e2b9
10 changed files with 258 additions and 41 deletions

View File

@@ -35,7 +35,7 @@ func (s *Server) AddNewLocationHandler(c *fiber.Ctx) error {
if err != nil {
return err
}
var photoPathsList []string
var photoURLsList []string
for i, photo := range locAdditionalPhotos {
src, err := photo.Open()
if err != nil {
@@ -44,7 +44,8 @@ func (s *Server) AddNewLocationHandler(c *fiber.Ctx) error {
defer src.Close()
photoPath := filepath.ToSlash(s.Config.Server.LocationPhotoDir + locName + "/" + locName + "_" + strconv.Itoa(i) + filepath.Ext(photo.Filename))
photoPathsList = append(photoPathsList, photoPath)
photoURL := locName + "_" + strconv.Itoa(i) + filepath.Ext(photo.Filename)
photoURLsList = append(photoURLsList, photoURL)
photoData, err := io.ReadAll(src)
if err != nil {
return err
@@ -56,6 +57,8 @@ func (s *Server) AddNewLocationHandler(c *fiber.Ctx) error {
// saving the uploaded image to our images dir
coverImagePath := filepath.ToSlash(s.Config.Server.LocationPhotoDir + locName + "/" + locName + "_cover" + filepath.Ext(locPhoto.Filename))
// Creating the URL to retrieve photo
coverImageURL := locName + "_cover" + filepath.Ext(locPhoto.Filename)
src, err := locPhoto.Open()
if err != nil {
return err
@@ -72,8 +75,8 @@ func (s *Server) AddNewLocationHandler(c *fiber.Ctx) error {
}
newLocation := Location{
Name: locName,
CoverPhoto: coverImagePath,
Photos: photoPathsList,
CoverPhoto: coverImageURL,
Photos: photoURLsList,
Notes: locNotes,
}
err = s.AddLocation(newLocation)
@@ -126,6 +129,77 @@ func (s *Server) DeleteLocationHandler(c *fiber.Ctx) error {
return c.Status(fiber.StatusOK).SendString(fmt.Sprintf("Location Deleted! %d", locID))
}
// Add a new location
func (s *Server) AddNewRoomHandler(c *fiber.Ctx) error {
form, err := c.MultipartForm()
if err != nil {
s.Log.Err(err).Msgf("Unable to fetch rooms: ", err)
return err
}
roomName := form.Value["Name"][0]
roomPhoto := form.File["CoverPhoto"][0]
if err != nil {
s.Log.Err(err).Msgf("Unable to get CoverPhoto for Room: ", err)
return err
}
roomAdditionalPhotos := form.File["AdditionalPhotos"]
// Create the directory for this location to store the photos
err = os.MkdirAll(s.Config.Server.LocationPhotoDir+roomName, 0755)
if err != nil {
return err
}
var photoURLsList []string
for i, photo := range roomAdditionalPhotos {
src, err := photo.Open()
if err != nil {
return err
}
defer src.Close()
photoPath := filepath.ToSlash(s.Config.Server.LocationPhotoDir + roomName + "/" + roomName + "_" + strconv.Itoa(i) + filepath.Ext(photo.Filename))
photoURL := roomName + "_" + strconv.Itoa(i) + filepath.Ext(photo.Filename)
photoURLsList = append(photoURLsList, photoURL)
photoData, err := io.ReadAll(src)
if err != nil {
return err
}
os.WriteFile(photoPath, photoData, 0644)
}
// create files on server for all uploads
locNotes := form.Value["Notes"][0]
// saving the uploaded image to our images dir
coverImagePath := filepath.ToSlash(s.Config.Server.LocationPhotoDir + roomName + "/" + roomName + "_cover" + filepath.Ext(roomPhoto.Filename))
// Creating the URL to retrieve photo
coverImageURL := roomName + "_cover" + filepath.Ext(roomPhoto.Filename)
src, err := roomPhoto.Open()
if err != nil {
return err
}
defer src.Close()
coverImageData, err := io.ReadAll(src)
if err != nil {
s.Log.Err(err).Msgf("Unable to read cover photo file: ", err)
return err
}
err = os.WriteFile(coverImagePath, coverImageData, 0644)
if err != nil {
return err
}
newLocation := Location{
Name: roomName,
CoverPhoto: coverImageURL,
Photos: photoURLsList,
Notes: locNotes,
}
err = s.AddLocation(newLocation)
if err != nil {
return err
}
s.Log.Debug().Msgf("Adding new location: %v", newLocation)
return c.Status(fiber.StatusOK).SendString(fmt.Sprintf("New Location Created! %s", newLocation.Name))
}
// GetAllRoomsHandler gets all of the rooms in the db
func (s *Server) GetAllRoomsHandler(c *fiber.Ctx) error {
rooms, err := s.GetAllRooms()