From 69456895e1e4d785c5ba9ccd1f45b156d3077db2 Mon Sep 17 00:00:00 2001
From: Florent Gluck <florent.gluck@hesge.ch>
Date: Thu, 12 Dec 2024 18:14:40 +0100
Subject: [PATCH] libclient: added userCreate

---
 .../cmdUser/{userAdd.go => userCreate.go}     | 40 +++++--------------
 src/libclient/user/userCreate.go              | 23 +++++++++++
 2 files changed, 34 insertions(+), 29 deletions(-)
 rename src/client/cmdUser/{userAdd.go => userCreate.go} (79%)
 create mode 100644 src/libclient/user/userCreate.go

diff --git a/src/client/cmdUser/userAdd.go b/src/client/cmdUser/userCreate.go
similarity index 79%
rename from src/client/cmdUser/userAdd.go
rename to src/client/cmdUser/userCreate.go
index 0dbdc6e..7eb23ac 100644
--- a/src/client/cmdUser/userAdd.go
+++ b/src/client/cmdUser/userCreate.go
@@ -2,12 +2,12 @@ package cmdUser
 
 import (
 	"encoding/csv"
-	"errors"
 	"io"
 	u "nexus-client/utils"
 	"nexus-common/caps"
 	"nexus-common/params"
 	g "nexus-libclient/globals"
+	libclient "nexus-libclient/user"
 	"os"
 	"strings"
 )
@@ -64,8 +64,7 @@ func (cmd *Add) Run(args []string) int {
 	argc := len(args)
 	if argc >= 4 {
 		// Detected syntax: email firstname lastname pwd [caps]
-
-		cargs := &params.UserWithPwd{
+		p := &params.UserWithPwd{
 			Email:     args[0],
 			FirstName: args[1],
 			LastName:  args[2],
@@ -74,19 +73,18 @@ func (cmd *Add) Run(args []string) int {
 		}
 		if argc > 4 {
 			for _, cap := range args[4:] {
-				cargs.Caps[cap] = 1
+				p.Caps[cap] = 1
 			}
 		}
 
-		if err := cmd.runRequest(cargs); err != nil {
-			u.PrintlnErr("FAILED creating user " + cargs.Email + ": " + err.Error())
+		if err := libclient.UserCreate(*p); err != nil {
+			u.PrintlnErr("FAILED creating user " + p.Email + ": " + err.Error())
 			statusCode = 1
 		} else {
-			u.Println("Successfully created user " + cargs.Email)
+			u.Println("Successfully created user " + p.Email)
 		}
 	} else if argc == 1 {
 		// Detected syntax: file.csv
-
 		csvFile := args[0]
 		file, err := os.Open(csvFile)
 		if err != nil {
@@ -123,7 +121,7 @@ func (cmd *Add) Run(args []string) int {
 				continue
 			}
 
-			cargs := &params.UserWithPwd{
+			p := &params.UserWithPwd{
 				Email:     email,
 				FirstName: columns[1],
 				LastName:  columns[2],
@@ -134,15 +132,15 @@ func (cmd *Add) Run(args []string) int {
 			if len(capsStr) > 0 {
 				caps := strings.Split(capsStr, " ")
 				for _, cap := range caps {
-					cargs.Caps[cap] = 1
+					p.Caps[cap] = 1
 				}
 			}
 
-			if err := cmd.runRequest(cargs); err != nil {
-				u.PrintlnErr("FAILED creating user " + cargs.Email + ": " + err.Error())
+			if err := libclient.UserCreate(*p); err != nil {
+				u.PrintlnErr("FAILED creating user " + p.Email + ": " + err.Error())
 				statusCode = 1
 			} else {
-				u.Println("Successfully created user " + cargs.Email)
+				u.Println("Successfully created user " + p.Email)
 			}
 		}
 	} else {
@@ -152,19 +150,3 @@ func (cmd *Add) Run(args []string) int {
 
 	return statusCode
 }
-
-func (cmd *Add) runRequest(args *params.UserWithPwd) error {
-	client := g.GetInstance().Client
-	host := g.GetInstance().Host
-
-	resp, err := client.R().SetBody(args).Post(host + "/users")
-	if err != nil {
-		return errors.New("Error: " + err.Error())
-	}
-
-	if resp.IsSuccess() {
-		return nil
-	} else {
-		return errors.New(resp.Status() + ": " + resp.String())
-	}
-}
diff --git a/src/libclient/user/userCreate.go b/src/libclient/user/userCreate.go
new file mode 100644
index 0000000..8acd519
--- /dev/null
+++ b/src/libclient/user/userCreate.go
@@ -0,0 +1,23 @@
+package template
+
+import (
+	"errors"
+	"nexus-common/params"
+	g "nexus-libclient/globals"
+)
+
+func UserCreate(p params.UserWithPwd) error {
+	client := g.GetInstance().Client
+	host := g.GetInstance().Host
+
+	resp, err := client.R().SetBody(p).Post(host + "/users")
+	if err != nil {
+		return errors.New("Error: " + err.Error())
+	}
+
+	if resp.IsSuccess() {
+		return nil
+	} else {
+		return errors.New(resp.Status() + ": " + resp.String())
+	}
+}
-- 
GitLab