How to return an Observable with an array of objects calling a web service?

Hi,
I’d like to call a REST web service from an Ionic4 application and return an Observable with a list of User objects.
I’ve created a class User and I’d like that, during the cast, the constructor of this class is called.
I’ve tried these two methods:

import {Observable} from 'rxjs';
import { map } from 'rxjs/operators';

class User implements IUser {
  id: number;
  email: string;
  firstName: string;
  lastName: string;
  city: string;
  search_string: string;
...

  constructor(values: Object = {}) {
    Object.assign(this, values);
    this.search_string = this.email + ' ' + this.firstName + ' ' + this.lastName;
  }

}

// Method-1
fetchUsers(): Observable<User[]> {
	console.log('*** fetchUsers ***');
	...
	return  this.httpClient
	  .get<User[]>(commandUrl, {headers: this.getWsHeader(), responseType: responseType})
	  .map(products  => {
		return  products.map((product) =>  new  User(product));
	  });
}
 

// Method-2
fetchUsers(): Observable<User[]> {
	console.log('*** fetchUsers ***');
	...
	return this.httpClient
	.get<User[]>(commandUrl, {headers: this.getWsHeader(), responseType: responseType});
}

The first has no errors but the constructor is not called during the cast.
The second gives the error:

Property map does not exist on type Observable<User[]>

Which is the correct way to return a list of objects?
The class has the same fields of the Json plus the field: search_string.

Thank you very much

claudio

Ok, I’ve solved in this way:

import { map } from 'rxjs/operators';

fetchUsers(): Observable<User[]> {
	console.log('*** fetchUsers ***');
	return  this.httpClient
	  .get<User[]>(commandUrl, {headers: this.getWsHeader(), responseType: responseType})
	  .pipe(map(users  => {
		return  users.map((user) =>  new  User(user));
   }));
}

Hope it can help someone else.

cld