@@ -2,19 +2,17 @@ package gitlab
2
2
3
3
import (
4
4
"fmt"
5
- "strconv "
5
+ "log "
6
6
"strings"
7
7
8
8
"github.com/hashicorp/terraform/helper/schema"
9
9
gitlab "github.com/xanzy/go-gitlab"
10
10
)
11
11
12
- // Search by email required
13
12
func dataSourceGitlabUser () * schema.Resource {
14
13
return & schema.Resource {
15
14
Read : dataSourceGitlabUserRead ,
16
15
Schema : map [string ]* schema.Schema {
17
- //Search option
18
16
"email" : {
19
17
Type : schema .TypeString ,
20
18
Required : true ,
@@ -23,34 +21,34 @@ func dataSourceGitlabUser() *schema.Resource {
23
21
}
24
22
}
25
23
26
- // Performs the lookup
27
24
func dataSourceGitlabUserRead (d * schema.ResourceData , meta interface {}) error {
28
25
client := meta .(* gitlab.Client )
29
- // Create the query, grab the email for the query and set it for use
30
- var query * gitlab.ListUsersOptions
31
- email := strings .ToLower (d .Get ("email" ).(string ))
32
- * query .Search = email
33
- // Query to find the email. Returns a list
26
+
27
+ log .Printf ("[INFO] Reading Gitlab user" )
28
+
29
+ searchEmail := strings .ToLower (d .Get ("email" ).(string ))
30
+ query := & gitlab.ListUsersOptions {
31
+ Search : & searchEmail ,
32
+ }
34
33
users , _ , err := client .Users .ListUsers (query )
35
34
if err != nil {
36
35
return err
37
36
}
38
37
39
- // Create a user to save userdata to
40
- var user * gitlab.User
41
- // Grab User data out of list
42
- for _ , a := range users {
43
- if a .Email == email {
44
- user = a
38
+ var found * gitlab.User
39
+
40
+ for _ , user := range users {
41
+ if strings .ToLower (user .Email ) == searchEmail {
42
+ found = user
45
43
break
46
44
}
47
45
}
48
- if user == nil {
49
- return fmt .Errorf ("The email '%s' does not match any user email" , email )
46
+ if found == nil {
47
+ return fmt .Errorf ("The email '%s' does not match any user email" , searchEmail )
50
48
}
51
- d .SetId (strconv . Itoa ( user .ID ))
52
- d .Set ("name" , user .Name )
53
- d .Set ("username" , user .Username )
54
- d .Set ("email" , user .Email )
49
+ d .SetId (fmt . Sprintf ( "%d" , found .ID ))
50
+ d .Set ("name" , found .Name )
51
+ d .Set ("username" , found .Username )
52
+ d .Set ("email" , found .Email )
55
53
return nil
56
54
}
0 commit comments